找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2226|回復: 3
打印 上一主題 下一主題
收起左側(cè)

問各位一個關(guān)于51單片機看門狗的問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:676489 發(fā)表于 2020-2-8 17:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. sfr WDTRST=0xa6; //聲明看門狗寄存器
復制代碼
然后主程序啟用看門狗,如下
  1. WDTRST=0x1e;
  2. WDTRST=0xe1;
復制代碼
再然后進入中斷程序(中斷檢查過,沒問題)
  1. void kan()interrupt 1{                  
  2.         TL0=(65536-1000)%256;
  3.         TH0=(65536-1000)/256;
  4.         if(++x==146){   //把146設置成14600,系統(tǒng)也不會復位
  5.                 x=0;
  6.                 WDTRST=0x1e;
  7. WDTRST=0xe1;  
  8.         }
復制代碼
于是我在x=0;后面加了個while死循環(huán),146變成14600
  1. void kan()interrupt 1{
  2.         TL0=(65536-1000)%256;
  3.         TH0=(65536-1000)/256;
  4.         if(++x==146){
  5.                 x=0;while(1);
  6.                 WDTRST=0x1e;
  7. WDTRST=0xe1;
  8.         }
復制代碼
14.6秒進入中斷后死循環(huán),主程序沒有執(zhí)行,我想看門狗會溢出,然后復位系統(tǒng)。
可是并沒有復位。請問各位這是什么原因?難道我看門狗設置的有問題嗎?求助



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:235200 發(fā)表于 2020-2-9 00:52 | 只看該作者
雖然14.6秒進入了死循環(huán),但這個死循環(huán)仍然會產(chǎn)生定時中斷再一次進入后,又跳過了死循環(huán),要達到目的,在x=0;后還加一條TR0=0;就能實現(xiàn)了
回復

使用道具 舉報

板凳
ID:326783 發(fā)表于 2020-2-14 16:55 | 只看該作者
看門狗最好不要加在中斷中執(zhí)行,放在主程序里.
回復

使用道具 舉報

地板
ID:159575 發(fā)表于 2020-2-16 18:21 來自手機 | 只看該作者
中斷里喂狗,不會復位的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表