2025-10-10 07:46:35 +00:00
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
/// 看门狗模块文件
|
|
|
|
|
///
|
|
|
|
|
///
|
|
|
|
|
/// 包含相关初始化功能
|
|
|
|
|
/// @file wdog_module.c
|
|
|
|
|
/// @author gkl
|
|
|
|
|
/// @date 2017-05-25创建
|
|
|
|
|
/// @version v0.1
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// 包含的头文件
|
|
|
|
|
#include "app_cfg.h"
|
|
|
|
|
#include "gd32f4xx_gpio.h"
|
|
|
|
|
#include <includes.h>
|
|
|
|
|
#include "device_wdog.h"
|
2025-10-18 05:35:20 +00:00
|
|
|
|
|
2025-10-10 07:46:35 +00:00
|
|
|
|
/// 引脚初始化
|
|
|
|
|
///
|
|
|
|
|
/// @param none
|
|
|
|
|
/// @param none
|
|
|
|
|
/// @return none
|
|
|
|
|
/// @note 修改日志
|
|
|
|
|
/// gkl与2017-05-26创建
|
|
|
|
|
/// LH于2022-05-31
|
|
|
|
|
static void init_dog()
|
|
|
|
|
{
|
|
|
|
|
//PE5
|
|
|
|
|
rcu_periph_clock_enable(RCU_GPIOE);
|
|
|
|
|
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5);
|
|
|
|
|
gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_5);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//void GD32_reset()
|
|
|
|
|
//{
|
|
|
|
|
// //软件复位GD32
|
|
|
|
|
// NVIC_SystemReset();
|
|
|
|
|
//// GD32_RESET();
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
//喂狗任务
|
|
|
|
|
static void task_feeddog ()
|
|
|
|
|
{
|
|
|
|
|
while(1)
|
|
|
|
|
{
|
|
|
|
|
OSTimeDlyHMSM(0u,0u,0u,20u);
|
|
|
|
|
//翻转电平喂狗
|
2025-10-18 05:35:20 +00:00
|
|
|
|
gpio_bit_toggle(GPIOE, GPIO_PIN_5);
|
2025-10-10 07:46:35 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 创建喂狗任务
|
|
|
|
|
///
|
|
|
|
|
/// @param none
|
|
|
|
|
/// @param none
|
|
|
|
|
/// @return none
|
|
|
|
|
/// @note 修改日志
|
|
|
|
|
/// gkl与2017-05-26创建
|
|
|
|
|
static OS_STK task_feeddog_stk[TASK_FEEDDOG_STK_SIZE];
|
|
|
|
|
static void task_create_feeddog (void)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
CPU_INT08U task_err;
|
|
|
|
|
CPU_INT08U name_err;
|
|
|
|
|
|
|
|
|
|
task_err = OSTaskCreateExt((void (*)(void *)) task_feeddog,
|
|
|
|
|
(void *) 0,
|
|
|
|
|
(OS_STK *)&task_feeddog_stk[TASK_FEEDDOG_STK_SIZE - 1],
|
|
|
|
|
(INT8U ) TASK_FEEDDOG_PRIO,
|
|
|
|
|
(INT16U ) TASK_FEEDDOG_PRIO,
|
|
|
|
|
(OS_STK *)&task_feeddog_stk[0],
|
|
|
|
|
(INT32U ) TASK_FEEDDOG_STK_SIZE,
|
|
|
|
|
(void *) 0,
|
|
|
|
|
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
|
|
|
|
#if (OS_TASK_NAME_EN > 0)
|
|
|
|
|
OSTaskNameSet(TASK_FEEDDOG_PRIO, "task_feed_dog", &name_err);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 看门狗模块初始化
|
|
|
|
|
///
|
|
|
|
|
/// 初始化io管脚,创建任务
|
|
|
|
|
/// @param none
|
|
|
|
|
/// @param none
|
|
|
|
|
/// @return none
|
|
|
|
|
/// @note 修改日志
|
|
|
|
|
/// gkl与2017-05-26创建
|
|
|
|
|
void init_wdog_module()
|
|
|
|
|
{
|
|
|
|
|
// 初始化io管脚
|
|
|
|
|
init_dog();
|
|
|
|
|
// 创建任务
|
|
|
|
|
task_create_feeddog();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|