C8051F340内部看门狗,小弟水平较低,请高手们指教下
自己写的程序时没问题的,里面加上了看门狗就出了问题,好像一直是看门狗在复位,但对PCA0CPH4 的赋值又好像没什么问题,请高手们帮忙指教下~~
void PCA_Init() //看门狗配置
{
PCA0CN=0x40; //允许PCA定时器、计数器
PCA0MD &= ~0x40 ; //先禁止看门狗
PCA0MD &=0xF1; //现则PCA计数器时钟源为SYSTTEM/12
PCA0CPL4=0xFF; //设置看门狗溢出时间为65.5ms
}
void main(void)
{
UART0();
PORT();
SYSCLK();
PCA_Init();
if ((RSTSRC & 0x02) == 0x00) //如果最后一次复位不是上电复位
{
if (RSTSRC == 0x08) //如果最后一次复位来自看门狗超时
{
P1=0x0F;
}
else
{
P1=0xF0;
}
}
PCA0MD &= ~0x40; //禁止看门狗
PCA0L=0x00;
PCA0H=0x00;
PCA0CPL4 = 0xFF; // PCA捕捉模块低字节,设置计数器偏移量,即看门狗时间
PCA0MD |=0x40; // 使能看门狗
EA = 1; // 开中断
P1=0X00;
while (1)
{
abs();
PCA0CPH4 = 0x00; //喂狗
}
} |