120 lines
2.3 KiB
C
120 lines
2.3 KiB
C
////////////////////////////////////////////////////////////////////////////////
|
||
|
||
/// 看门狗模块文件
|
||
///
|
||
///
|
||
/// 包含相关初始化功能
|
||
/// @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"
|
||
/// 引脚初始化
|
||
///
|
||
/// @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,2u);
|
||
//翻转电平喂狗
|
||
gpio_bit_toggle(GPIOE, GPIO_PIN_5);
|
||
|
||
}
|
||
}
|
||
|
||
/// 创建喂狗任务
|
||
///
|
||
/// @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();
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|