MSP430主系统时钟以及430的低功耗设置
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
睡眠模式唤醒
LPM3_EXIT;//退出低功耗模式
}
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
BCSCTL1&=~XT2OFF;//~0x80
do
{
IFG1&=~OFIFG;//OFIFG为1表示外部晶体振荡器失效
for(i=0xff;i0;i--);//IFG1是InterruptFlag1
}
while((IFG1&OFIFG));//表示振荡器已经起振
BCSCTL2|=SELM_2;//#defineSELM_2(0x80)/*MCLKSourceSelect2:XT2CLK/LF
关闭外部中断:_DINIT();
430外部中断的模式
#include
main(void)
{
BCSCTL1=DIVA_2;//(0x20)/*ACLKDivider2:/4*/
WDTCTL=WDT_ADLY_1000;//直接将看门狗定时器变成定时器,定时
时间是1000毫秒
IE1=WDTIE;//打开定时器中断
P2DIR|=BIT3;
while(1)
{
unsignedinti;
_BIS_SR(LPM3_bits+GIE);//进入低功耗模式3,这种时候,cpu停止工
作,同时打开总的中断//_BIS_SR是一个本增函数,
//_BIS_SR()是一个本增函数,通过本函数可以对寄存器进行直接的操作
//这句话等价于_EINT();
//LPM3;
P2OUT&=~BIT3;//相当于把第五位输出0
for(i=180000;i0;i--);//延时
P2OUT|=BIT3;//p3.5输出1
}
}
#pragmavector=WDT_VECTOR
__interruptvoidwatchdag_timer(void)
{
//__BIC_SR_IRQ(LPM3_bits);//从中断中,将低功耗模式退出,将cpu从
XTCLK*/
while(1);
}
低功耗模式的设置:
msp430内部有4种低功耗模式,在进入低功耗模式的时候,cpu停止,
一般是由外部事件的响应才能唤醒cpu
由于IAR软件比较给力,所以进入低功耗模式的常用格式
比如:
进入低功耗模式2:LPM2;
退出低功耗模式2:LPM2_EXIT;
开启外部中断:_EINT():
MSP430主系统时钟以及430的低功耗设置
如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是
DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,
因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可以为cpu
提供强劲稳定的时钟
#include
voidmain(void)
{
//Stopwatchdogtimertopreventtimeoutreset
WDTCTL=WDTPW+WDTHOLD;
volatileunsignedinti;
P5DIR|=BIT4;//设置P5.4为输出
P5SEL|=BIT4;//设置片内主系统时钟的输出
//由这段代码设置如何将DCO切换到高频晶体振荡器
LPM3_EXIT;//退出低功耗模式
}
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
BCSCTL1&=~XT2OFF;//~0x80
do
{
IFG1&=~OFIFG;//OFIFG为1表示外部晶体振荡器失效
for(i=0xff;i0;i--);//IFG1是InterruptFlag1
}
while((IFG1&OFIFG));//表示振荡器已经起振
BCSCTL2|=SELM_2;//#defineSELM_2(0x80)/*MCLKSourceSelect2:XT2CLK/LF
关闭外部中断:_DINIT();
430外部中断的模式
#include
main(void)
{
BCSCTL1=DIVA_2;//(0x20)/*ACLKDivider2:/4*/
WDTCTL=WDT_ADLY_1000;//直接将看门狗定时器变成定时器,定时
时间是1000毫秒
IE1=WDTIE;//打开定时器中断
P2DIR|=BIT3;
while(1)
{
unsignedinti;
_BIS_SR(LPM3_bits+GIE);//进入低功耗模式3,这种时候,cpu停止工
作,同时打开总的中断//_BIS_SR是一个本增函数,
//_BIS_SR()是一个本增函数,通过本函数可以对寄存器进行直接的操作
//这句话等价于_EINT();
//LPM3;
P2OUT&=~BIT3;//相当于把第五位输出0
for(i=180000;i0;i--);//延时
P2OUT|=BIT3;//p3.5输出1
}
}
#pragmavector=WDT_VECTOR
__interruptvoidwatchdag_timer(void)
{
//__BIC_SR_IRQ(LPM3_bits);//从中断中,将低功耗模式退出,将cpu从
XTCLK*/
while(1);
}
低功耗模式的设置:
msp430内部有4种低功耗模式,在进入低功耗模式的时候,cpu停止,
一般是由外部事件的响应才能唤醒cpu
由于IAR软件比较给力,所以进入低功耗模式的常用格式
比如:
进入低功耗模式2:LPM2;
退出低功耗模式2:LPM2_EXIT;
开启外部中断:_EINT():
MSP430主系统时钟以及430的低功耗设置
如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是
DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,
因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可以为cpu
提供强劲稳定的时钟
#include
voidmain(void)
{
//Stopwatchdogtimertopreventtimeoutreset
WDTCTL=WDTPW+WDTHOLD;
volatileunsignedinti;
P5DIR|=BIT4;//设置P5.4为输出
P5SEL|=BIT4;//设置片内主系统时钟的输出
//由这段代码设置如何将DCO切换到高频晶体振荡器