打印

MSP430看门狗定时器

[复制链接]
3358|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whywhy89713|  楼主 | 2012-7-27 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源程序如下
#include  <msp430x14x.h>
void main(void)
{
  WDTCTL = WDT_ADLY_250;                    // WDT 250ms, ACLK, interval timer
  IE1 |= WDTIE;                             // Enable WDT interrupt
  P1DIR |= 0x01;                            // Set P1.0 to output direction
  _BIS_SR( GIE);                 //interrupt
}
// Watchdog Timer interrupt service routine
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
  P1OUT ^= 0x01;                            // Toggle P1.0 using exclusive-OR
}

比较奇怪的事经过试验发现,当令WDTCTL = WDT_ADLY_250; 时LED并不闪烁,而令WDTCTL = WDT_MDLY_32;时却可以闪烁;希望达人们能够具体讲讲这是怎么回事? 非常感谢!

相关帖子

沙发
figo20042005| | 2012-7-27 10:47 | 只看该作者
是不是那中断时间,刚好人的视觉判断不出

使用特权

评论回复
板凳
colin111111| | 2012-7-27 11:41 | 只看该作者
时间暂留效应

使用特权

评论回复
地板
whywhy89713|  楼主 | 2012-7-27 12:01 | 只看该作者
3# colin111111
非常感谢楼上两位的回答,可是我觉得不应该是这样吧。
通过查看库函数,和相关寄存器,我的想法是:
WDTCTL = WDT_ADLY_250;用的是ACLK=32768Hz,延时为t(ACLK)*2^13所以其延时是250ms
WDTCTL = WDT_MDLY_32;用的是SMCLK=1MHz,延时为t(SMCLK)*2^15所以其延时是32ms
也就是说ADLY_250延时应该更长一些才对呀,怎么会因为视觉暂停效应而看不见呢?
这是我的想法不知道对不对

使用特权

评论回复
5
whywhy89713|  楼主 | 2012-7-27 12:01 | 只看该作者
2# figo20042005
非常感谢楼上两位的回答,可是我觉得不应该是这样吧。
通过查看库函数,和相关寄存器,我的想法是:
WDTCTL = WDT_ADLY_250;用的是ACLK=32768Hz,延时为t(ACLK)*2^13所以其延时是250ms
WDTCTL = WDT_MDLY_32;用的是SMCLK=1MHz,延时为t(SMCLK)*2^15所以其延时是32ms
也就是说ADLY_250延时应该更长一些才对呀,怎么会因为视觉暂停效应而看不见呢?
这是我的想法不知道对不对

使用特权

评论回复
6
figo20042005| | 2012-7-27 12:53 | 只看该作者
那这个就不是了,你仿真看下有没有进入中断,进入中断的时间是不是250MS

使用特权

评论回复
7
colin111111| | 2012-7-27 16:37 | 只看该作者
你看一下的时钟源的选择对么?

使用特权

评论回复
8
colin111111| | 2012-7-27 20:37 | 只看该作者
这个现象很奇怪,按道理应该都可以

使用特权

评论回复
9
myai03| | 2012-7-28 16:10 | 只看该作者
1# whywhy89713

使用特权

评论回复
10
myai03| | 2012-7-28 16:10 | 只看该作者
:):)不错

使用特权

评论回复
11
Crazy窝窝头| | 2012-7-28 20:45 | 只看该作者
时钟源的问题吗?

使用特权

评论回复
12
oxlm| | 2012-9-18 11:36 | 只看该作者
有的430芯片需要外接时钟源看门狗的ACLK才能工作正常的,你可以用示波器量一下看门狗中断的长度

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

52

帖子

0

粉丝