日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于mini2440的看门狗(裸机)

發布時間:2025/3/21 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于mini2440的看门狗(裸机) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在由單片機構成的微型計算機系統中,由于單片機的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環,程序的正常運行被打斷,由單片機控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的后果,所以出于對單片機運行狀態進行實時監測的考慮,便產生了一種專門用于監測單片機程序運行狀態的芯片,俗稱"看門狗",s3c2440中也集成了看門狗,在受到干擾或者系統錯誤時是芯片復位。s3c2440的看門狗有兩個特點:1、提供16bit的時間間隔的中斷。2、128個PCLK的周期復位信號。看門狗的結構:


看門狗定時器頻率計算如下:


分頻值從0到2的8次方減1,分頻系數可選:16、32、64、128。s3c2440看門狗操作需要三個寄存器:WTCON、WTDAT、WTCNT。分別是看門狗控制、限時、計數。在啟動時候WTDAT不會自動裝載到WTCNT,所以初始化時一定要寫定時值到WTCNT中。

測試程序:

測試中我們將分頻值設置為249,分頻系數設置為16。可計算看門狗時間間隔t_watchdog為0.00008s,設置4秒中斷一次的話那么WTDAT的值應設置為50000。每次中斷蜂鳴器響起,并用串口顯示相關信息。程序如下:

主程序部分:

#define GLOBAL_CLK 1#include<string.h> #include "def.h" #include "option.h" #include "2440addr.h" #include "profile.h" #include "mmu.h"extern void watchdog_set(unsigned int wtcnt); extern void feed_watchdog(unsigned int wtcnt); extern unsigned char watchdog_flag;void delay(int num) {int i, j, k;for(i=0;i<num;i++)for(j=0;j<1000;j++)for(k=0;k<1000;k++); }void Main(void) {rGPBCON = (1<<0);//GPIOB[0]設為輸出rGPBDAT = (0<<0);//關閉蜂鳴器MMU_Init();//地址的重映射watchdog_set(50000);while (1){if (1 == watchdog_flag){rGPBDAT = 1;//打開蜂鳴器delay(50);Uart_Printf("\nwatchdog on\n");}watchdog_flag = 0;rGPBDAT = 0;//關閉蜂鳴器} }


看門狗部分:

?

?

#include "2440addr.h"unsigned char watchdog_flag = 0;//看門狗中斷標志 void __irq watchdog_interrupt(void);/*看門狗初始化*/ void watchdog_set(unsigned int wtcnt) {/*開始時不自動裝載因此需先設置計數值*/rWTDAT = wtcnt;rWTCNT = wtcnt;/*使用中斷但不復位CPU*/rWTCON |= (249<<8 | 1<<5 | 1<<2 | 0);rINTSUBMSK &= ~(1<<13);//允許看門狗中斷rINTMSK &= ~(1<<9);/*設置中斷向量*/pISR_WDT_AC97 = (unsigned)watchdog_interrupt; }/*喂狗操作*/ void feed_watchdog(unsigned int wtcnt) {rWTCNT = wtcnt; }/*看門狗中斷服務函數*/ void __irq watchdog_interrupt(void) {rSUBSRCPND |= 1<<13;//清除中斷rSRCPND |= 1<<9;rINTPND |= 1<<9;watchdog_flag = 1;//設置用戶中斷標志 }


運行結果:

?


源代碼地址:http://download.csdn.net/detail/a16839678/6272069


?

總結

以上是生活随笔為你收集整理的基于mini2440的看门狗(裸机)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。