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.
126 lines
4.6 KiB
126 lines
4.6 KiB
#if 0
|
|
/*********************************************************
|
|
*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 ozone_message_t ozone_message;
|
|
extern zkey_module_t key_module;
|
|
bool rgb_flicker_state = false;
|
|
extern rgb_message_t rgb_message;
|
|
/***********************************************************************************************************************
|
|
* =====================================================看门狗======================================================
|
|
**
|
|
***********************************************************************************************************************/
|
|
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();
|
|
// printf("喂狗\r\n");
|
|
}
|
|
}
|
|
|
|
//############### 测试一下看门狗 ##############//
|
|
|
|
/**
|
|
* @brief 上电臭氧工作情况,设备中设置有开关机按键,所以外部上电后,不让设备工作
|
|
*
|
|
*/
|
|
void power_on_ozone_working_status(void) {
|
|
// PWM频率1Khz,占空比0,占空比低有效,设置占空比为100,pwm一直输出低电平
|
|
HOOK_pwm_module_set_pwm_duty(1, 100);
|
|
light_module_set_timing_light_mode(CLOSE_ALL_LED);
|
|
light_module_set_rgb_mode(RGB_COLOR_RED);
|
|
port_fan_set(false); //打开你风扇
|
|
}
|
|
|
|
/***********************************************************************************************************************
|
|
* ======================================================主函数=======================================================
|
|
**
|
|
***********************************************************************************************************************/
|
|
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();
|
|
power_on_ozone_working_status();
|
|
// power_on_ozone_work_state(); //上电工作情况
|
|
// ADCInit("A",4);
|
|
// printf("Initialization completed\r\n");
|
|
while (1) {
|
|
// port_do_debug_light_state();
|
|
port_key_state();
|
|
// if (get_ozone_starting_up_state() == true) { //开机中
|
|
// // if (ozone_message.ozone_work_state == 2)
|
|
// // is_ozone_work_time_over();
|
|
// // if (ozone_message.ozone_interva_state == true) {
|
|
// // set_rgb_flicker(); //间歇状态下rgb亮3灭1
|
|
// // is_ozone_interva_time_over();
|
|
// // }
|
|
// pwm_module_loop();
|
|
// if (rgb_message.rgb_flicker_mode == true) {
|
|
// process_rgb_flicker_mode();
|
|
// rgb_message.already_set_rgb_mode = false;
|
|
// } else if (rgb_message.rgb_flicker_mode == false) {
|
|
// if (rgb_message.already_set_rgb_mode == false)
|
|
// light_module_set_rgb_mode(rgb_message.turn_off_the_mode_before_rgb);
|
|
// rgb_message.already_set_rgb_mode = true;
|
|
// }
|
|
// // adc_loop_gather();
|
|
// } else if (get_ozone_starting_up_state() == false) { //关机
|
|
// }
|
|
// test_iwdt();
|
|
// feed_iwdt(); //当产生中断的时候进行喂狗操作
|
|
}
|
|
}
|
|
|
|
#endif
|
|
#include <stdbool.h> //定义布尔
|
|
|
|
#include "main.h"
|
|
extern zkey_module_t key_module;
|
|
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);
|
|
}
|