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.

107 lines
4.2 KiB

4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
  1. /*********************************************************
  2. *Copyright (C), 2017, Shanghai Eastsoft Microelectronics Co., Ltd
  3. *: main.c
  4. * : AE Team
  5. * : V1.00
  6. * : 2021/05/13
  7. * : GPIO模块示例程序
  8. * GPIO_PA2的电平状态LED1LED1
  9. * :
  10. *使
  11. **********************************************************/
  12. #include "main.h"
  13. #include <stdbool.h> //定义布尔
  14. // extern ozone_message_t ozone_message;
  15. extern zkey_module_t key_module;
  16. bool rgb_flicker_state = false;
  17. extern rgb_message_t rgb_message;
  18. /***********************************************************************************************************************
  19. * ===========================================================================================================
  20. **
  21. ***********************************************************************************************************************/
  22. void iwdt_init(void) {
  23. /**
  24. * @brief 0+1
  25. * 2
  26. * 4
  27. *
  28. */
  29. IWDT_InitStruType x;
  30. x.WDT_Tms = 4000;
  31. x.WDT_IE = Enable; /* IWDT中断使能 */
  32. x.WDT_Rst = Enable; /* IWDT复位使能 */
  33. x.WDT_Clock = IWDT_CLOCK_WDT; /* LRC */
  34. IWDT_Init(&x);
  35. /* 使能IWDT */
  36. IWDT_Enable();
  37. }
  38. void feed_iwdt(void) {
  39. //喂狗
  40. if (0x01 == IWDT_GetFlagStatus()) //产生中断
  41. {
  42. IWDT_Clear();
  43. // printf("喂狗\r\n");
  44. }
  45. }
  46. //############### 测试一下看门狗 ##############//
  47. /**
  48. * @brief ,
  49. *
  50. */
  51. void power_on_ozone_working_status(void) {
  52. // PWM频率1Khz,占空比0,占空比低有效,设置占空比为0,pwm一直输出高电平
  53. HOOK_pwm_module_set_pwm_duty(1, 0);
  54. light_module_set_timing_light_mode(CLOSE_ALL_LED);
  55. light_module_set_rgb_mode(OPEN_RED_LIGHT);
  56. port_fan_set(true); //打开你风扇
  57. }
  58. /***********************************************************************************************************************
  59. * =============================================================================================================
  60. **
  61. ***********************************************************************************************************************/
  62. int main(void) {
  63. HRC_Config(Enable, SCU_HRC_48M, Enable); //时钟源SCU_CLK_HRC
  64. SystemInit();
  65. DeviceClockAllEnable(); //打开所有外设时钟
  66. User_SysTickInit(); //滴答定时器初始化为(配置为1ms中断)
  67. SysTick_Enable();
  68. uart0_init();
  69. gpio_init();
  70. zkey_init(&key_module);
  71. t16n0_1_init(); //配置PA4输出pwm
  72. // iwdt_init();
  73. power_on_ozone_working_status();
  74. // power_on_ozone_work_state(); //上电工作情况
  75. // ADCInit("A",4);
  76. // printf("Initialization completed\r\n");
  77. while (1) {
  78. // port_do_debug_light_state();
  79. port_key_state();
  80. // if (get_ozone_starting_up_state() == true) { //开机中
  81. // // if (ozone_message.ozone_work_state == 2)
  82. // // is_ozone_work_time_over();
  83. // // if (ozone_message.ozone_interva_state == true) {
  84. // // set_rgb_flicker(); //间歇状态下rgb亮3灭1
  85. // // is_ozone_interva_time_over();
  86. // // }
  87. // pwm_module_loop();
  88. // if (rgb_message.rgb_flicker_mode == true) {
  89. // process_rgb_flicker_mode();
  90. // rgb_message.already_set_rgb_mode = false;
  91. // } else if (rgb_message.rgb_flicker_mode == false) {
  92. // if (rgb_message.already_set_rgb_mode == false)
  93. // light_module_set_rgb_mode(rgb_message.turn_off_the_mode_before_rgb);
  94. // rgb_message.already_set_rgb_mode = true;
  95. // }
  96. // // adc_loop_gather();
  97. // } else if (get_ozone_starting_up_state() == false) { //关机
  98. // }
  99. // test_iwdt();
  100. // feed_iwdt(); //当产生中断的时候进行喂狗操作
  101. }
  102. }