打印

关于看门狗的小问题~~~请高手帮忙啊~

[复制链接]
3992|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yeyangqlg|  楼主 | 2009-9-29 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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; //喂狗
    }
}

相关帖子

沙发
hab2000| | 2009-9-29 11:34 | 只看该作者
abs()函数运行时间可能超过看门狗时间了!

使用特权

评论回复
板凳
duojinian| | 2009-9-30 09:13 | 只看该作者
建议
1。设置好WDT的时钟
2。设置好WDT的计数器初值
3。函数前复位WDT
4。循环前复位WDT
5。上电复位WDT
6。休眠前复位WDT
7。低功耗前复位WDT
8。如果可以适当延长WDT复位时间

使用特权

评论回复
地板
zzt_00| | 2011-4-11 21:12 | 只看该作者
一看3楼就是行家

使用特权

评论回复
5
xlsbz| | 2011-4-11 22:19 | 只看该作者
我印象里面PCA和看门狗没啥关系吧   这个片子默认可能是狗开了的

PCA好像是能测占空比  当定时器 生成脉冲之类的吧

使用特权

评论回复
6
yyp123456| | 2011-4-12 09:16 | 只看该作者
顶三楼

使用特权

评论回复
7
sytu_chyq| | 2011-4-12 10:15 | 只看该作者
就是,把看门狗时间设长一点看下。。

使用特权

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

本版积分规则

5

主题

11

帖子

0

粉丝