搜索
bottom↓
回复: 0

请教高搜 avr 看门狗禁用不了?

[复制链接]

出0入0汤圆

发表于 2013-12-15 17:11:53 | 显示全部楼层 |阅读模式
请教高手,为什么看门狗禁用不了呢?  熔丝烧写是默认的,狗没有一直启动。内部8M频率 启用8分频,
mea48 mega 8效果一样
用的是CVAVR

有如下几种现象几个问题,如下:
1、
注释掉  interrupt [7] void _dog_isr(void)函数。
1.1    (下面程序是抄主程序的)
  USART_Init();  
//    dog_en();     //不启用狗
    USART_char(WDTCSR); //调试结果  :WDTCSR=00;
      dog_dis();  
    USART_char(WDTCSR); //调试结果  :WDTCSR=00;
1.2   
  USART_Init();  
    dog_en();    //启用狗
    USART_char(WDTCSR); //调试结果  :WDTCSR=08;
      dog_dis();  
    USART_char(WDTCSR); //调试结果  :WDTCSR=08;  明显没禁用狗
2、
不注释  interrupt [7] void _dog_isr(void)函数。
  USART_Init();  
//    dog_en();     //不启用狗
    USART_char(WDTCSR); //调试结果  :WDTCSR=08;
      dog_dis();  
    USART_char(WDTCSR); //调试结果  :WDTCSR=08;//主程序 1.1相同  但是仅仅加了个中断函数,中断也没执行,狗却启用了,也禁止不了

3、打算用48的狗中断,中断后保存数据,然后重启。程序如下:
                interrupt [7] void _dog_isr(void)
        {
                                       
        /*
                  数据保存程序 略
                    */

        dog_en();//用一次开启看门狗复位函数,就是复位不了  实验结果是 要用两次开启看门才行
        dog_en();
        while(1) #asm("cli");;
        }


下面是关闭狗测试源程序   

#include <mega48.h>

#include <delay.h>  
#define feed_dog #asm("WDR")
             #define    dog_overflow_time_17ms    0
            #define    dog_overflow_time_33ms    1
            #define    dog_overflow_time_66ms    2
            #define    dog_overflow_time_130ms    3
            #define    dog_overflow_time_260ms    4
            #define    dog_overflow_time_540ms    5
            #define    dog_overflow_time_1110ms    6
            #define    dog_overflow_time_2220ms    7
            #define    dog_overflow_time_4000ms    0x20
            #define    dog_overflow_time_8000ms    0x21   
            
                void dog_en(void)     //看门狗启动
                {
                    feed_dog;
                   /*  MCUSR 中的WDRF 清零*/
                    MCUSR = 0x00;
                   // 置位WDCE 与WDE
                    WDTCSR = (1<<WDCE) | (1<<WDE);
                    WDTCSR=(1<<WDE) |dog_overflow_time_17ms;           
                }
               
                void dog_dis(void)     //看门狗禁止   安全是抄手册上的
                {
                    feed_dog;
                    // MCUSR 中的WDRF 清零*/
                    MCUSR = 0x00;
                   // 置位WDCE 与WDE
        WDTCSR = (1<<WDCE) | (1<<WDE);
        WDTCSR=0;        
        }
                        
                interrupt [7] void _dog_isr(void)//看门狗中断
        {
                                       
                                        /*
                    SHUJU
                    */
        {//要复位需要增加两个dog_en()不知道为啥,试验结果。
        dog_en();
        dog_en();
        while(1);
        }

                                       
        }
               
                void  USART_char (unsigned char x)     //  串口发送一个数据

                {  
                    while (!(UCSR0A&0x20)) #asm("WDR");  
                    UDR0=x;

                }
                //f****************USART无中断初始化******************* ************************ 频率1M  波特率1200
                void USART_Init(void)
                {
                    unsigned int usart_temp;
                    usart_temp=(unsigned int)(1000000/1200)/16-1;
                    UBRR0H=(unsigned char)(usart_temp>>8);
                    UBRR0L=(unsigned char)(usart_temp&(unsigned int)0x00ff);
                    UCSR0B=0x98;  //发送接收使能  接收中断使能   
        }  



void main(void)
{  
   
    USART_Init();   
   
    dog_en();   
    USART_char(0xaa);
    USART_char(WDTCSR);
      dog_dis();  
      USART_char(0xbb);   
    USART_char(WDTCSR);
    USART_char(0xcc);   
while (1)
      
  {  

  }   
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 23:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表