关于MSP430看门都定时器的的一个困惑

kangyonghui 2010-05-18 01:42:58
include<msp430x24x.h>
void main()
{
WDTCTL=WDT_ADLY_250 ; // WDT 1s /4 interval timer 间隔定时器,为1000ms
IE1|=WDTIE; // Enable WDT interrupt
P3DIR|=BIT4;
_BIS_SR(LPM3_bits+GIE); //enter LPM0,enable interrupts

}

#pragma vector=WDT_VECTOR //看门狗定时器的中断。
__interrupt void watchdog_timer(void)
{

P3OUT^=BIT4;

}
上面这个一直是亮的,但是就是不闪烁。如果把:
WDTCTL=WDT_ADLY_250 ; 改成WDTCTL=WDT_MDLY_32,
就闪烁了,
为什么呢,小弟初学,谢谢大家。
其实WDTCTL=WDT_ADLY_250这个也是书上的程序,不知道为什么就是不闪烁。
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangyonghui 2010-05-20
  • 打赏
  • 举报
回复
谢谢大家,我知道错误了,感谢。截接帖子
kongfo1019 2010-05-19
  • 打赏
  • 举报
回复
你可知家用电灯也闪烁的?每秒50次,熄了灭,灭了熄。为什么看不到它在闪烁?
Peasant_Lee 2010-05-18
  • 打赏
  • 举报
回复
WDTCTL=WDT_ADLY_250 与WDTCTL=WDT_MDLY_32,应该就是看门狗定时参数设置不一样,具体的话,你要将完整的宏定义贴出来,才知道。

当WDTCTL=WDT_MDLY_32时 ,定时慢一点。故能看到闪烁。当WDTCTL=WDT_ADLY_250时,定时器很快,人感觉不出在闪烁。

xiaoke0379 2010-05-18
  • 打赏
  • 举报
回复
从道理上讲,你改后应该不进中断才对,因为你用的看门狗的时钟是系统时钟,系统时钟在LPM3是停止的。你再好好看看
lbing7 2010-05-18
  • 打赏
  • 举报
回复
是不是太快了?你眼睛反应不过来?

在这句处下断点,仿真运行看有没有进中断即可知道
P3OUT^=BIT4;

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧