feat: add STM8 mesh relay firmware
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* @file watchdog.c
|
||||
* @brief STM8S003 独立看门狗实现。
|
||||
*
|
||||
* 看门狗只在主循环末尾刷新。任何任务死循环或长期阻塞超过约 5 秒,
|
||||
* 都会触发 MCU 复位;复位后 main() 从头执行,继电器首先被置为断开。
|
||||
*/
|
||||
#include "watchdog.h"
|
||||
#include "stm8s003_registers.h"
|
||||
|
||||
/** 启动看门狗并设置约 5 秒量级的预分频和重装值。 */
|
||||
void Watchdog_Init(void)
|
||||
{
|
||||
REG8(IWDG_KR_ADDR) = 0xCCu;
|
||||
REG8(IWDG_PR_ADDR) = 0x06u;
|
||||
REG8(IWDG_RLR_ADDR) = 0xFFu;
|
||||
REG8(IWDG_KR_ADDR) = 0xAAu;
|
||||
}
|
||||
|
||||
/** 刷新看门狗,防止正常运行时复位。 */
|
||||
void Watchdog_Refresh(void)
|
||||
{
|
||||
REG8(IWDG_KR_ADDR) = 0xAAu;
|
||||
}
|
||||
Reference in New Issue
Block a user