MW22-02A/APP/Device/device_Other/device_wdog.c

120 lines
2.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

////////////////////////////////////////////////////////////////////////////////
/// 看门狗模块文件
///
///
/// 包含相关初始化功能
/// @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();
}