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通讯软体