|
思路:WDT时钟选用ACLK,并且调至每四秒中断一次,每次中断结束灯亮一下,程序如下。
编译没有问题,就是实现不了效果,不知问题何在???
小弟430刚入门,看得那英文资料头都大了,各位大侠可否赐教下入门经验,小弟感激不尽。
#include
void main()
{
WDTCTL = WDT_ADLY_1000; //WDT is clocked by fACLK (assumed 32KHz), 1000ms
BCSCTL1 |= DIVA_2; //辅助系统时钟四分频,则每间隔4s,看门狗中断一次。
P1DIR |= BIT0 + BIT6;
IE1 |= WDTIE;
while(1)
{
unsigned int i;
_BIS_SR(LPM3_bits + GIE); //进入低功耗模式3,开系统总中断。
P1OUT |= BIT0 + BIT6; //每次跳出中断灯亮
for(i=48000;i>0;i--);
P1OUT &= (~BIT0) + (~BIT6); //延时一定时间灯灭。
}
}
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer ()
{
_BIC_SR_IRQ(LPM3_bits);
}
|
|