历史上的今天
今天是:2025年04月02日(星期三)
2021年04月02日 | MSP430G2:低功耗模式下的IO学习
2021-04-02 来源:eefocus
* 超低功耗频率 1.5KHZ
* P1.0有1/100的周期激活
* 超低功耗的范例
* ACLK = VL0, MCLK = VLO/8 ~1.5kHz, SMCLK = n/a,主时钟选择超低功耗,超低频率的内部晶振的8分频,
* VLO:Internal Very-Low-Power Low-Frequency Oscillator 内部的超低功耗,低频率振荡器
* BCSCTL3 是 Basic clock system control 3 ,Mode 2 for LFXT1。
* 选择模式2
* IFG1:SFR interrupt flag 1(Special Function)
* INTERRUPT SOURCE:Oscillator fault 晶振错误标志位
* INTERRUPT FLAG:OFIFG
* DCO:digitally controlled oscillator 数字信号控制的晶振
* BCSCTL2 :Basic clock system control 2
* SELM_3:MCLK Source Select 3: LFXTCLK
* DIVM_3:MCLK Divider 3: /8 MCLK时钟8分频
* MCLK: Main clock 主时钟
* SCG1 + SCG0都是状态标志位
* LFXT1:Low Frequency XT1 (低频晶振1)
*******************************************************************************/
#include //MSP430G2231头文件
/*********************************************************************************************************
* Function name: main
* Descriptions: 主函数
* input parameters: 无
* output parameters: 无
* Returned value: 无
* 超低功耗模式下的IO端口操作
*********************************************************************************************************/
void main(void)
{
volatile unsigned int i; // Volatile to prevent removal
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 禁止看门狗
BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO ,低频晶振选择内部的超低功耗,超低频率晶振。
IFG1 &= ~OFIFG; // Clear OSCFault flag,清除晶振错误标志位
__bis_SR_register(SCG1 + SCG0); // Stop DCO 禁止数控晶振
BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = LFXT1/8 主时钟源选择LFXT1,分频系数选择8分频。
P1DIR = 0xFF; // All P1.x outputs 所有的P1端口都设置为输出
P1OUT = 0; // All P1.x reset P1端口值都清零
P2DIR = 0xFF; // All P2.x outputs 所有的P1端口都设置为输出
P2OUT = 0; // All P2.x reset P2端口值都清零
for (;;) // 主循环
{
P1OUT |= 0x01; // P1.0 set P1.0置位
for (i = 10; i > 0; i--); // Delay 1x 延时
P1OUT &= ~0x01; // P1.0 reset P1.0清零
for (i = 1000; i > 0; i--); // Delay 100x 延时
}
}
下一篇:MSP430外部中断程序
史海拾趣
|
我的电路设计和程序都编写好了,但是输出波形很不理想,只有方波OK,三角波,锯齿波,正弦波都失真很厉害,求大侠们帮小弟解决下这个问题! ORG 0000H MAIN: MOV A,#00H MO ...… 查看全部问答> |
|
讨论:各位在单片机中用什么算法去做菜单? 比如我要用89s52和smc1602做个菜单。这个菜单有很多层的,即有子菜单。 不知道各位用的是什么方法和算法? 小弟我一开始就用树和链表方式做的。不好。 & ...… 查看全部问答> |
|
动手做个示波器,液晶显示屏不知用那款好些.有的说用 NS 12864C,也有的的说用 NS 12864R 有点拿不准.想请教高手.用那款实用好些,二者有何区别.请给欲我答复.感激.谢谢!… 查看全部问答> |
|
使用Altera的UniPHY控制器,采用软核和硬核两种模式,使用的时候一般是PHY跟controller一起使用,例化的时候已经将两者合为一体了。使用软核或硬核的区别只是下图的一个check box是否选上。 本来还好好的,默认没有选上,一点击使用硬核之后,图表 ...… 查看全部问答> |
|
一直想把ucosII V2.92移植到LM3S9B92上去,但前前后后搞了将近三个星期了,还是没有一点结果,指针总是越界,第一个任务还没启动起来就会进入死循环,真是郁闷啊。… 查看全部问答> |
|
写了个串口调试程序用来测试板子各个工作点状态的,但是居然第一次烧录几次后CPLD就不能再烧录了干脆坏掉了,只能换芯片,要知道100脚的epm570更换起来多费时间。是不是程序导致芯片内部短路了?… 查看全部问答> |
|
【NUCLEO-F410RB】2.给nucleo移植上ucos-ii,用信号量实现led闪烁 本帖最后由 caizhiwei 于 2015-12-6 17:17 编辑 虽然管理员寄过来的板子不能用,但是还得完成任务。所以抽出时间把ucos-ii移植上另外一块Nucleo板子上,奉上工程源码,供大家享用~~ int main(void) {   ...… 查看全部问答> |




