打印

关于protues房子MSP430单片看门狗不能复位的问题!

[复制链接]
2809|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xsy_86|  楼主 | 2011-7-11 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是新手,MSP430的新手。因为板子还没有到手,所以先用protues仿真学习一下。我仿真的是MSP430F235。程序如下:#include "io430.h"

void delay(int t)
{
  int x,y;
  for(x=0;x<t;x++)
  {
    for(y=0;y<t;y++);
  }
}

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR = 0xFF;
  P1OUT = 0xFF;  //灯灭
  delay(500);
  P1OUT = 0X00;  //灯亮
  delay(500);
  WDTCTL = WDTPW;
  while(1);

  //return 0;
}
相当简单的程序,就是想让看门狗复位,让灯闪一下。可是很明显,仿真结果是灯一直亮着。看门狗没有复位!这是为什么呢?

相关帖子

沙发
永远的不知| | 2011-7-12 14:44 | 只看该作者
您按下面的程序试试
void main(void)
{
  WDTCTL = WDT_MDLY_32;                     // Set Watchdog Timer interval to ~30ms
  IE1 |= WDTIE;                             // Enable WDT interrupt
  P1DIR |= 0x01;                            // Set P1.0 to output direction

  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}

// Watchdog Timer interrupt service routine
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
  P1OUT ^= 0x01;                            // Toggle P1.0 using exclusive-OR
}

使用特权

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

本版积分规则

0

主题

25

帖子

1

粉丝