Ameba Arduino: [RTL8722CSM] [RTL8722DM] Watchdog 計時器範例

材料準備

  • Ameba D [RTL8722 CSM/DM] x 1

範例說明

在此範例中,我們將使用在Ameba RTL8722模塊上運行的Watchdog計時器範例來說明如何使用Watchdog API。 在詳細介紹範例之前,我們先簡要介紹一下“Watchdog”的定義及其工作原理。

Watchdog

Watchdog Timer(WDT)是一種硬件定時器,用於檢測軟件故障的發生,然後在編程週期到期時自動生成系統重置或Watchdog中斷。

一般來說,想像一下您的微控制器陷入無限循環的混亂情況,或者像微控制器在執行某些任務時卡住的任何情況。 正常的故障排除方法是按下重置按鈕並跳出無限循環。 但是,實際上不可能一直都按下按鈕,因此,嵌入在微控制器內的Watchdog定時器將有助於解決這種情況。

1

Feed the Dog

如果您的家中有一隻狗。 您需要定期餵食。 如果一天不能餵食,它會咬你! 同樣,這是Watchdog定時器背後的工作邏輯。

在我們的範例中,我們創建了2個任務,其中包含一次又一次重複運行的循環,一個稱為成功任務,另一個稱為失敗任務。 我們使Watchdog定時器的初始值(5秒)大於成功任務的總延遲,但比失敗任務的延遲短。
對於成功的情況,Watchdog將在5秒內刷新/餵食,但是,對於失敗的情況,循環正在處理中,並且Watchdog在5秒後仍不刷新,這會觸發Watchdog 以重置處理器。 同樣,Watchdog定時器可以保護微控制器免受卡住情況的影響。

然後我們開始說明本範例的編碼部分,對於本範例,您僅需要Ameba RTL8722開發板。

1

首先,確保在Arduino IDE中選擇了正確的Ameba開發板:“Tools”->“Board”->“ RTL8722CSM / RTL8722DM”。 然後在“File”->“Examples”->“AmebaWatchdog”->“Watchdog Timer”中打開“Watchdog Timer”範例:

1

成功上傳範例代碼後,打開串行監視器,然後按重置按鈕。 您會發現成功的任務可以在5秒內刷新Watchdog(初始化Watchdog定時器)。 但是,失敗的任務將無法在5秒內刷新Watchdog,這將導致微控制器重置。

1

Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved.
請先確認已安裝QQ通訊軟體