You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*********************************************************
*Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd *文件名: main.c *作 者: AE Team *版 本: V1.00 *日 期: 2021/05/13 *描 述: GPIO模块示例程序 * 定时扫描GPIO_PA2的电平状态,高电平点亮LED1,低电平熄灭LED1 *备 注: *本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。 **********************************************************/ #include "main.h"
#include <stdbool.h> //定义布尔
extern int ozone_work_state; extern uint32_t g_sys_sick; extern zkey_module_t key_module; /***********************************************************************************************************************
* =====================================================看门狗====================================================== ** ***********************************************************************************************************************/ void iwdt_init(void) { /**
* @brief 看门狗介绍:当计数到0时,窗口计数器+1 * 当窗口计数为“2”的时候,产生中断 * 当窗口计数器为“4”的之前没有进行喂狗操作,产生复位 * */ IWDT_InitStruType x;
x.WDT_Tms = 4000; x.WDT_IE = Enable; /* IWDT中断使能 */ x.WDT_Rst = Enable; /* IWDT复位使能 */ x.WDT_Clock = IWDT_CLOCK_WDT; /* LRC */ IWDT_Init(&x);
/* 使能IWDT */ IWDT_Enable(); } void feed_iwdt(void) { //喂狗
if (0x01 == IWDT_GetFlagStatus()) //产生中断
IWDT_Clear(); } extern uint32_t print_time; //############### 测试一下看门狗 ##############//
void test_iwdt(void){ if(print_time<=5000){ feed_iwdt(); } }
/***********************************************************************************************************************
* ======================================================主函数======================================================= ** ***********************************************************************************************************************/ int main(void) { HRC_Config(Enable, SCU_HRC_48M, Enable); //时钟源SCU_CLK_HRC
SystemInit(); DeviceClockAllEnable(); //打开所有外设时钟
User_SysTickInit(); //滴答定时器初始化为(配置为1ms中断)
SysTick_Enable(); uart0_init(); gpio_init(); zkey_init(&key_module); t16n0_1_init(); //配置PA4输出pwm
iwdt_init(); gears_led_on(0); //上电以后默认高档工作亮红灯
port_fan_set(true); //上电风扇开始工作
printf("Initialization completed\r\n"); while (1) { port_do_debug_light_state(); port_key_state(); if (ozone_work_state == 2) is_ozone_work_time_over(); if (print_time >= 1800000) { // if (print_time >= 1000) {
print_time = 0; printf("g_sys_sick:%d\n",g_sys_sick); } //test_iwdt();
feed_iwdt();//当产生中断的时候进行喂狗操作
} }
|