『壹』 MCU已帶看門狗,為什麼還要加外部看門狗
外部的看門口程序主要是增強系統的穩定性,例如x5045.外部看門狗渣氏不僅能對軟體問題復位,還能對硬體問題復位,所塌耐以說盡量使用如衫散外部看門狗電路。
『貳』 看門狗應用程序無法啟動怎麼辦
看門狗偷跑對於玩家來說真的是喜聞樂見。但是在進游戲的時候不少玩家都覺得十分的累覺不愛啊!有些玩家會遇到卡跡世頓的問題,有些玩家發現游戲沒姿者肢有聲音,還有一些玩家的游戲直接無法啟動,真是說多了都是淚了。今天深空高玩給大家帶來的是看門狗游戲中應用程序無法啟動的解決方法,有這個問題的玩家快來看看。
看門狗應用程序無法啟動怎麼辦:
如果玩家遇到這個問題,首先先刪除游戲中全部的C++,然後在刪除後找到看門狗文件夾中嫌悉的以下文件夾;
打開文件夾後,找到紅框的兩個文件夾;
先打開DirectX文件夾,安裝D3D11Install,如果和下圖顯示一樣就跳過這步;
還是在DirectX文件夾中,安裝另一個DXSETUP,下圖紅框;
安裝後,打開VCRedist文件夾,安裝裡面的以下文件;
運行游戲,去好好體驗一番次世代主機游戲的魅力吧!
『叄』 功能安全需要外部加看門狗么
功能安全外部加看門狗,會使你的安全系數更高一些,完全取決於你的需求。
1.要講系統的可靠性,首先要講系統安全保證機制的可靠性,對於MCU系統來說,養DOG是其中最重要的一條。
2.很多人可能要講,我沒養DOG,我的系統也很可靠,所以看門狗沒有必要。這是一種不需要反駁的觀點,從理論上來講,養狗安全系數肯定會高一些;
3.在系統裡面養狗,狗本身電路也是存在失效可能性的,在上面有人曾講到MAX813翹了,這就屬於這種情況,MAX813還屬於比較好的,過去很多人經常用到的25045,內部集成了EE等資源,這東西不怎的,很容易被干擾得自己掛了。
4.很多人在爭執系統裡面應該如何養狗,很多人片面的以為狗一定要在主循環裡面養才是最好的,在這里不得不說說hotpower的中斷養狗論了,當年hotpower為了證明那些人的說法是何其錯誤,整出了一個中斷養狗論,很多人根本沒看襪返脊懂hotpower想要表達的真實含義,從原理上世改講,hotpower其實要表達的是:要想養一條忠實聽話的好狗,在哪個地方養根本不重要,在哪個地方告滲養都可以達到最好的效果,真正重要的是要注意軟體返回的各個路徑,在異常的時候,要通過條件互駁,讓狗起來看家。
5.雖然hotpower中斷養狗的方法也可以達到比較好的看家效果,但俺卻是一個主循環養狗的堅定擁護者,原因無它,
第一:主循環養狗簡單明了;
第二:主循環養狗比較省代碼,
第三:不管是中斷還是主循環養狗,實現條件互駁,這只狗都一樣忠實。
6.在這里不得不說程序結構,那種流水帳的程序結構,不管是中斷還是主循環養狗,結果都是一樣:養了一隻癩皮狗。
『肆』 單片機程序里看門狗程序重要嗎
看門狗就是防止程序跑飛後,死機。跑飛後,看門狗會重啟程序。
跑飛的情況一專個是程序屬寫的不好,有BUG,還有就是外界干擾。
如果不是做產品,自己試驗的話,盡量不用看門狗,因為如果程序跑飛,你需要知道並且檢查你的程序了。
『伍』 看門狗程序的原理是什麼啊
看門狗程序工作原理:
1、看門狗是一個用獨立時鍾源提供的脈沖進行累加計數的計數器,無需任何外部元件;
2、獨立的RC時鍾信號源是指RC振盪器與OSC1引腳的外接氏搏RC振盪器,OSC1和OSC2外接晶體振盪器或陶瓷諧振器構成的單片機系統時鍾是分離的,這就意味著,即使單片機進入系統時鍾停振的睡眠狀態,監視計時器仍然能夠運行;
3、在單片機執行程序期間,一次看門狗定時器超時溢出,將使單片機產生復位操作,如果單片機處於睡眠狀態,一次看門狗定時器超時溢出將使單片機被喚醒,恢復正常運行狀態,並且繼續弊乎執行在進入睡眠之前被擱置的程序;
4、每次看門狗定時器超時溢出,都會使得狀態條件寄存器中的T0位被清0,以記錄曾經發生的這次看門狗溢出事件,供作程序查詢判斷用;
5、當監視計時器等於0時,看門狗定時器將被永久禁止,當監視計時器等於1時,看門狗定時器將被租核悉永久啟用。
『陸』 (單片機)外部看門狗是怎麼實現的
你應該看一看來一款具體的外部源看門狗晶元的內部結構圖,比如MAX706,他有一個引腳WDI,是看門狗計數器輸入引腳,看門狗晶元不會去統計單片機輸出的脈沖數,而是只檢測在這個引腳上是否發生了電平翻轉。
單片機需要控制這個引腳的電平保持高低不停的跳變。
一但看門狗啟用,看門狗晶元內部的1.6秒計數器開始計數,如果WDI引腳上現在了電平反轉,則復位計數器,如果在1.6秒的時間內沒有在WDI引腳上檢測到電平反轉,看門狗晶元就會在RST引腳上輸出一個200ms的低電平,復位目標MCU,然後復位他自己的計數器,重新開1.6秒計數,然後以上過程無限重復。
『柒』 51單片機看門狗問題
在程序初始化中向看門狗寄存器(WDTRST地址是0A6H)中先寫入01EH,再寫入0E1H。即可激 活看門狗。
ORG 0000H
LJMP begin
Begin:
MOV 0A6H,#01EH ;先送1E
MOV 0A6H,#0E1H ;後送E1
;在程序初始化中激活看門狗。
……
……
For:
……
MOV 0A6H,#01EH ;先送1E
MOV 0A6H,#0E1H ;後送E1
;喂狗指令
……
LJMP For
在C語言中要增加一個聲明語句。 在AT89X51.h聲明文件中增加一行 sfr WDTRST = 0xA6;
Main()
{
WDTRST=0x1E;
WDTRST=0xE1;//初始化看門狗。
While (1)
{
WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
}
}
其他參考代碼:
AJMP MAIN ;匯編
MAIN:
;啟動看門狗
Mov 0A6H,#01EH ;先送1E
Mov 0A6H,#0E1H ;後送E1
;主程序
START:
ACALL WDT ;調用復位看門狗子程序
AJMP START
;主程序
;復位看門狗子程序
WDT:
Mov 0A6H,#01EH ;先送1E
Mov 0A6H,#0E1H ;後送E1
RET
END
注意事項:
1. 89S51的看門狗必須由程序激活後才開始工作。所以必須保證CPU有可靠的上電復位。否則看門狗也無法工作。
2. 看門狗使用的是CPU的晶振。在晶振停振的時候看門狗也無效。
3. 89S51隻有14位計數器。在16383個機器周期內必須至少喂狗一次。而且這個時間是固定的,無法更改。當晶振為12M時每16個毫秒需喂狗一次。還可利用定時器把看門狗的喂狗時間延長幾秒至幾分鍾。
你不往寄存器寫值,默認是沒有開看門狗的,你就不用管了
『捌』 51單片機 c語言看門狗程序怎麼寫
看門狗在51單片機電路里的作用是防止程序 「跑飛」、「死機」後,系統不動作,而採取復位的辦法「喚醒」系統。
89S51、89S52系列單片機自帶有看門狗功能,片內數據區A6H寄存器具有看門狗功能,使用很簡單:
#include<reg51.h>
...
sfr WDTRST = 0xA6;
...
void main()
{
WDTRST=0x1E;;//初始化看門狗
WDTRST=0xE1;//初始化看門狗
for(;;)
{
WDTRST=0x1E;;//喂狗指令
WDTRST=0xE1;//喂狗指令
}
}
可見,你只要在程序的大循環體內加一條喂狗指令就行。但這種看門狗功能有限,不是很可靠的,它依靠晶振工作,一旦晶振不起振,就無效了。
實踐中多採用外部看門狗的方法,可以選用的晶元很多:MAX708、MAX813
、X25045.....具體編程就要看晶元的參考資料了。
例如:X25045是SPI匯流排的看門狗晶元,復位端和單片機復位端連接,SPI數據輸入你可以選擇合適的IO介面。
WREN 0x06 設置寫允許位
WRDI 0x04 復位寫允許位
RDSR 0x05 讀狀態寄存器
WRSR 0x01 寫狀態寄存器
READ 0x03/0x0b 讀操作時內部EEPROM頁地址
WRITE 0x02/0x0a 寫操作時內部EEPROM頁地址
#include <reg51.h>
sbit CS= P2^7;
sbit SO= P2^6;
sbit SCK= P2^5;
sbit SI= P2^4;
#define WREN 0x06 //
#define WRDI 0x04 //
#define RDSR 0x05 //
#define WRSR 0x01 //
#define READ0 0x03 //
#define READ1 0x0b //
#define WRITE0 0x02 //
#define WRITE1 0x0a //
#define uchar unsigned char
uchar ReadByte() //read a byte from device
{
bit bData;
uchar ucLoop;
uchar ucData;
for(ucLoop=0;ucLoop<8;ucLoop++)
{
SCK=1;
SCK=0;
bData=SO;
ucData<<=1;
if(bData)
{ ucData|=0x01; }
}
return ucData;
}
void WriteByte(uchar ucData)//write a byte to device
{
uchar ucLoop;
for(ucLoop=0;ucLoop<8;ucLoop++)
{
if((ucData&0x80)==0) //the MSB send first
{SI=0;}
else
{SI=1;}
SCK=0;
SCK=1;
ucData<<=1;
}
}
uchar ReadReg() //read register
{
uchar ucData;
CS=0;
WriteByte(RDSR);
ucData=ReadByte();
CS=1;
return ucData;
}
uchar WriteReg(uchar ucData) //write register
{
uchar ucTemp;
ucTemp=ReadReg();
if((ucTemp&0x01)==1) //the device is busy
return 0;
CS=0;
WriteByte(WREN);//when write the WREN, the cs must have a high level
CS=1;
CS=0;
WriteByte(WRSR);
WriteByte(ucData);
CS=1;
return 1;
}
void WriteEpm(uchar cData,uchar cAddress,bit bRegion)
/* 寫入一個位元組,cData為寫入的數,cAddress為寫入地址,bRegion為頁 */
{
while((ReadReg()&0x01)==1); //the device is busy
CS=0;
WriteByte(WREN); //when write the wren , the cs must have a high level
CS=1;
CS=0;
if(bRegion==0)
{ WriteByte(WRITE0);} //write the page addr
else
{WriteByte(WRITE1);}
WriteByte(cAddress);
WriteByte(cData);
SCK=0; //
CS=1;
}
uchar ReadEpm(uchar cAddress,bit bRegion)
/* 讀入一個位元組,cAddress為讀入地址,bRegion為頁 */
{
uchar cData;
while((ReadReg()&0x01)==1);//the device is busy
CS=0;
if(bRegion==0)
{WriteByte(READ0); }
else
{WriteByte(READ1);}
WriteByte(cAddress);
cData=ReadByte();
CS=1;
return cData;
}
main()
{
WriteReg(0x00);//set the watchdog time as 1.4s
CS=1;
CS=0; //reset the watchdog
}
回復: xumin9514
所有的89S系列都帶狗,所有的80C系列都不帶狗。
所以89S51 89S52都帶狗,80C51、80C52都不帶狗。
『玖』 51單片機 c語言看門狗程序怎麼寫
#include <reg52.h>
sfr WDT_CONTR = 0xe1;
void delay(unsigned int time);
int main(void)
{
WDT_CONTR = 0x35;
P1 = 0x00;
delay(500);
P1 = 0xff;
while(1)
{
delay(1000);
WDT_CONTR = 0x35; //此處喂狗程序正常死循環while,若不喂程序會不斷從頭開始運行
}
return 0;
}
void delay(unsigned int time)
{
unsigned char i = 0;
unsigned int j = 0;
for(i = 0; i < 110; i++)
for(j = 0; j < time; j++);
}
『拾』 求助:dsp2812中有看門狗模塊,為什麼還要外接個X5043/X5045呢
很多時候設計的時候接了這個畢運轎晶元,但是沒有用,還是用的DSP2812的看門狗。
很多時候就需要比如其中的EEPROM功能,電源電壓監控功能等。很多時候想不到的,但是做復雜一點的項目的時候都可以接上去,預留在那裡。
因為這個小小的晶元很節省空間,成本低,具備很多功能,給做設計的時候留足餘量,可以當時設計了這個晶元,但是沒有用,也沒關系,我不焊接就是了,有時中途編寫程序時就需要用到這個晶元的其中一個功能,設計時留的此餘量就起作用了。
此晶元具備 1、上電復位功能,省去傳統的復位電路。
2、看門狗特性,提供系統的安全性,和穩定性,使控制晶元在受到干擾時死機,復位。
3、具備EEPROM空悄沖間,能存手肆儲數據。
4、電源電壓監控,當一個系統處於低電壓工作的時候,此時工作的系統不正常的,如果這個時候控制晶元在工作,也就是整個系統還在工作,可能發生意想不到的後果。
5、SPI介面特性。