carbonincauc 发表于 2013-5-9 18:36:30

新手求解 程序跑死问题。。

前段时间用ATtiny13A+ICCAVR写了一段非常简单的程序,在小于10分钟左右,该单片机输出正常。一般大于15分钟 程序就会持续输出某特定值。我认为是程序跑飞了。
于是乎想到用看门狗,但是新手又不太会。于是各种看教程,勉强写了一段。但是貌似还是会跑飞。。求解达人,帮忙看看,该怎么修改?

附:程序
#include <iot13v.h>
#include <macros.h>
void watchdog_init(void)
{
WDR(); //this prevents a timout on enabling
WDTCR = 0x1F;
WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
}
void main(void)
{DDRB|=(1<<0);//定义pb0输出,且开始输出为低电平
PORTB&=~(1<<0);
DDRB&=~(1<<3);//将pb3,pb4设置为输入,并且开启上拉电阻
DDRB&=~(1<<4);
PORTB|=(1<<3);
PORTB|=(1<<4);
while(1)                                          
{   
switch(PINB&0x18)
   { case 0x18:
             PORTB=0x01;
               break;
    case0x10:
          PORTB=0x01;
                break;
        case0x00:
          PORTB=0x01;
                break;
    case 0x08:
             PORTB=0x00;//测试使用
               break;
    default: PORTB=0X01;
    }
WDR();
       
}

}

shuipaopao 发表于 2013-5-10 08:28:15

default: PORTB=0X01; 后面是不是应该加上break;
页: [1]
查看完整版本: 新手求解 程序跑死问题。。