WDTCTL 看門狗控制寄存器
WDTCTL 由兩部分組成:
高 8 位是對 WDT 操作的控制命令。要寫入操作 WDT 的控制命令,出于安全原因必須先正確寫入高字節
看門狗口令。口令位 5AH,如果口令寫錯將導致系統復位。
讀 WDTCTL 時,不需要口令,可直接讀取地址 120H 中的內容,讀出數據低字節位 WDTCTL 的值,高字
節始終位 69H。WDTCTL 除了看門狗定時器的控制位之外,還有兩個用于設置 NMI 引腳功能。
WDTISx:選擇看門狗定時器的計時輸出
其中 T 是 WDTCNT 的輸入時鐘源周期。
0 T×2的15次方
1 T×2的13次方
2 T×2的9次方
3 T×2的6次方
WDTSSEL:選擇 WDTCNT 的時鐘源
0 SMCLK
1 ACLK
由 WDTISx 及 WDTSSEL 位便可確定 WDT 定時時間,因此通過軟件對計數器設置不同的初始值就可實現
不同時間的定時。與其他定時器不同之處在于,WDT 最多只能定時 8 種和時鐘源相關的時間。
下表列出了 WDT 可選的定時時間(晶振為 32.768KHz,SMCLK=1MHz)。
WDTCNTCL:看門狗計數器清零位
0: 無操作
1: 將 WDTCTL 的值清零
當該位為 1 時,清除 WDTCNT。
WDTTMSEL:工作模式選擇
0 看門狗模式;
1 定時器模式。
WDTNMI:選擇 RST/NMI 引腳功能(在 PUC 后被復位)
0 RST/NMI 引腳為復位端;
1 RST/NMI 引腳為邊沿觸發的非屏蔽中斷輸入。
WDTNMIES:選擇中斷的邊沿觸發方式
0
1
WDTHOLD:停止看門狗計數器
0 WDT 功能激活
1 時鐘禁止輸入,計數停止
WDTCNT 計數單元
WDTCNT 時 16 位增計數器,由于 MSP430 所選定的時鐘電路產生的固定周期脈沖信號對計數器進行加
法計數。如果計數器事先被預置的初始狀態不同,那么從開始計數到計數溢出為止的時間就不同。
WDTCNT 不能直接通過軟件直接通過軟件存取,必須通過看門狗定時器的控制寄存器 WDTCTL 來控制。
IE1 中斷允許寄存器
WDTIE:看門狗定時器模式中斷允許控制位
0 看門狗定時器中斷禁止
1 看門狗定時器中斷允許
NMIIE:非屏蔽中斷允許控制位
0 禁止非屏蔽中斷
1 允許非屏蔽中斷
IFG1 中斷標志寄存器
WDTIFG:看門狗定時器模式中斷標志
0 無看門狗定時器中斷標志
1 有看門狗定時器中斷標志
NMIIFG:非屏蔽中斷標志
0 無非屏蔽中斷標志
1 有非屏蔽中斷標志
看門狗定時器操作
用戶可以通過 WDTCTL 寄存器中的 WDTTMSEL 和 WDTHOLD 控制位設置 WDT 工作在看門狗模式、定
時器模式和低功耗模式。
看門狗模式
由于在上電復位或系統復位時,WDTCNT 和 WDTCL 兩寄存器內容被全部清除(晶振為 32768Hz,
SMCLK=1MHz):
復位后,工作在看門狗模式,以 ACLK 為時鐘,WDT 定時時間為 32ms。
上述情況將導致 WDT 的運行自動進入看門狗模式。
所以,用戶軟件一般都需要進行如下操作:
進行 WDT 的初始化:設置合適的時間(通過 SSEL、IS0、IS1 位來選定)。
周期性的對 WDTCNT 清零:防止 WDT 溢出,保證 WDT 的正確使用。
在看門狗模式下,如果計數器超過了定時時間,就會產生復位和激活系統上電清除信號,系統從上電 復位的地址重啟動。
如果系統不用看門狗功能,應該在程序開始處禁止看門狗功能。
定時器模式
WDTCTL 的 WDTTMSEL 位置位選擇定時器模式。這一模式產生選定時間的周期性中斷。定時時間
可以通過 WDTCTL 的 WDTCNCTL 位置位來開始。
改變定時時間而不同時清楚 WDTCNT 將導致不可預料的系統立即復位或中斷。定時時間可以通過 WDTCTL 的 CNCTL 位置位來開始。
如果先后分別進行清除和定時時間選擇,則可能立即引起不可預料的系統復位或中斷。
另外,在終場工作時。改變時鐘源可能導致 WDTCNT 額外的計數時鐘。
低功耗模式
當系統不需要 WDT 做看門狗和定時器時,可關閉 WDT 以減小功耗。
控制位 WDTHOLD=1 時關閉 WDT,這時看門狗停止工作。
看門狗定時器頭文件定義
在 msp430x14x.h 頭文件中定義如下:
/************************************************************
* WATCHDOG TIMER
************************************************************/
#define WDTCTL_ (0x0120) /* Watchdog Timer Control */
DEFW( WDTCTL , WDTCTL_)
/* The bit names have been prefixed with "WDT" */
#define WDTIS0 (0x0001)
#define WDTIS1 (0x0002)
#define WDTSSEL (0x0004)
#define WDTCNTCL (0x0008)
#define WDTTMSEL (0x0010)
#define WDTNMI (0x0020)
#define WDTNMIES (0x0040)
#define WDTHOLD (0x0080)
#define WDTPW (0x5A00)
/* WDT-interval times [1ms] coded with Bits 0-2 */
/* WDT is clocked by fMCLK (assumed 1MHz) */
#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) /* 32ms interval (default) */
#define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) /* 8ms " */
#define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) /* 0.5ms " */
#define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms " */
/* WDT is clocked by fACLK (assumed 32KHz) */
#define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) /* 1000ms " */
#define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms " */
#define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms " */
#define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)/* 1.9ms " */
/* Watchdog mode -> reset after expired time */
/* WDT is clocked by fMCLK (assumed 1MHz) */
#define WDT_MRST_32 (WDTPW+WDTCNTCL) /* 32ms interval (default) */
#define WDT_MRST_8 (WDTPW+WDTCNTCL+WDTIS0) /* 8ms " */
#define WDT_MRST_0_5 (WDTPW+WDTCNTCL+WDTIS1) /* 0.5ms " */
#define WDT_MRST_0_064 (WDTPW+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms " */
/* WDT is clocked by fACLK (assumed 32KHz) */
#define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) /* 1000ms " */
#define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms " */
#define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms " */
#define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms " */
所以我們使用 WDT 的時候可以直接寫成下面的形式:
做定時器用:
WDTCTL = WDT_ADLY_1000; // 以 ACLK 延遲 1000ms
WDTCTL = WDT_MDLY_32; // 以 SMCLK 延遲 32ms
// 記得要開 IE1 中的 WDTIE 和_EINT();
做看門狗用:
WDTCTL = WDT_ARST_1000; // 以 ACLK 設定 1000ms 的看門狗
WDTCTL = WDT_MRST_32; // 以 SMCLK 設定 32ms 的看門狗
// 由于在看門狗的定義里面包含 WDTCNCTL
// 所以需要喂狗的時候只需要再寫一邊 WDTCTL = WDT_MRST_32; 就行了
上一篇:淺談msp430f5529入門(1)——時鐘模塊DCO
下一篇:TI MSP430 如何使用 DCO 倍頻
推薦閱讀
史海拾趣
和芯潤德深知產品質量對于企業發展的重要性。因此,公司建立了嚴格的質量管理體系,從原材料采購到生產過程的每一個環節都進行嚴格把關。此外,公司還引進了先進的檢測設備和技術手段,確保產品的可靠性和穩定性。這種對質量的嚴格把控使和芯潤德的產品在市場上贏得了良好的口碑。
隨著公司規模的不斷擴大和市場的不斷拓展,Elite開始實施全球化戰略。公司積極開拓國際市場,與全球知名企業建立合作關系,共同推動行業發展。同時,Elite還注重品牌塑造和企業文化建設,通過舉辦各類公益活動、提升員工福利待遇等方式,增強企業凝聚力和社會影響力。
2005年,AMOTECH被Deloitte評為“亞太技術500強”,這進一步提升了公司在國際上的知名度和影響力。同年,公司還獲得了ISO14001認證,這體現了公司對環境保護的重視和承諾。隨著業務的不斷拓展,AMOTECH在2006年和2008年分別建立了青島辦公室和韓國第四工廠,進一步提升了公司的產能和效率。
1994年4月,昆泰在美國成功上市,募集資金3550萬美金。這筆資金為昆泰的后續發展提供了強有力的支持。上市后,昆泰加速了其業務擴張和技術創新的步伐,進一步鞏固了其在全球CRO行業的領先地位。
1987年,昆泰邁出了全球擴張的步伐,在倫敦開設了分支機構,開始服務于歐洲客戶。此后,昆泰不斷拓寬其業務領域,不僅局限于數據處理,還涉足藥物研發、臨床試驗等多個領域。這一系列的舉措使昆泰的業務范圍迅速擴大,成為全球CRO行業的領軍企業。
隨著電子行業的快速發展,AZM公司意識到只有不斷創新才能在激烈的市場競爭中立于不敗之地。因此,公司加大了對研發的投入,積極引進高端人才,建立了完善的研發體系。通過持續的技術創新,AZM公司成功推出了一系列具有領先水平的微電子產品,不僅提升了公司的市場競爭力,也為整個電子行業的發展做出了貢獻。
周末上來逛逛,發現“聊聊、笑笑、鬧鬧”里還是很熱鬧,相形之下,“工作這點事”關注的人少。讓本斑竹很沒面子,還是要多努力啊。 希望大家也說說希望這個板塊的方向是什么樣的。… 查看全部問答∨ |
|
OEMEnumExtensionDRAM:No Extended RAM, RAM size is 128 MB Sp=ffffc7cc Data Abort: Thread=87f6c8a4 Proc=81e9e950 \'filesys.exe\' AKY=00000003 PC=81b38454(NK.EXE+0x00038454) RA=00000001(???+0x00000001) BVA=05cb0790 FSR=00000007 D ...… 查看全部問答∨ |
|
我的需求是這樣的:我想裝兩個顯示器,并且它們在虛擬桌面上距離很遠(避免相互干擾,如一個顯示器中的窗口不要移動到另一個上),可是windows中安裝了多個顯示器并且設置為“extended”模式后,只能讓各個顯示器顯示區域相鄰(右擊桌面->屬性->顯 ...… 查看全部問答∨ |
wince debug口 修改問題,成功一半了~整個系統變得很慢! cpu是2440的,跑ce4.2; uart0被wince用作debug口,同時在ce里也能打開com1,只是波特率在denug.c寫死在115200了,平時用的時候可以正常輸出debug信息同時也可以用來數據傳輸。 為了不讓次端口輸出調試信息,我在debug.c修改如下 #include #in ...… 查看全部問答∨ |
和老警察能在公共汽車上一眼看出哪位是“三只手”一樣,有經驗的維修店伙計,也能從你的一言一行中看出你是不是菜鳥。劉先生買車一年,雖對車愛護有加,但對車輛知識仍是一無所知。他的車7500公里保養時就被修理廠要求換了三濾、火花塞,并做了發動 ...… 查看全部問答∨ |
我正在做一個單工無線呼叫系統,,接收部分是用cxa1238s做的,給它輸入的調頻信號是載頻30MHz調制信號330KHz的,在輸出端5,6腳上測的波形也是30MHz,這是怎么回事? 調制模塊是用MC145152+MC12022+MC1648做的,用它的輸出信號的調制信號輸入到cxa12 ...… 查看全部問答∨ |
請教各位大神,幫小弟看看,下面的程序,是什么意思,我最近搞了一塊CC3000 MSP430FR5729 int main(void){ WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= BIT0; P1OUT |= BIT0; w ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 將低功耗設計進行到底——評論、轉發贏大禮!
- 芯幣競拍:感恩教師節專場
- Keysight示波器主題月有獎系列活動之 注冊大獎天天抽 搶樓踩中亦有獎
- Microchip有獎直播:VectorBlox™ SDK 報名中
- 有獎直播|ADI 慣性MEMS應用那些事
- 借助 Microchip 生態系統中的 PIC® 和 AVR® 單片機開啟嵌入式到云端之旅 系列在線研討會
- 帶你零起點入門STM32(專為嵌入式應用而開發的內核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中