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.

86 lines
3.1 KiB

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
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
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
4 years ago
4 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. /***********************************************************************************************************************
  17. * ===========================================================================================================
  18. **
  19. ***********************************************************************************************************************/
  20. void iwdt_init(void) {
  21. /**
  22. * @brief 0+1
  23. * 2
  24. * 4
  25. *
  26. */
  27. IWDT_InitStruType x;
  28. x.WDT_Tms = 4000;
  29. x.WDT_IE = Enable; /* IWDT中断使能 */
  30. x.WDT_Rst = Enable; /* IWDT复位使能 */
  31. x.WDT_Clock = IWDT_CLOCK_WDT; /* LRC */
  32. IWDT_Init(&x);
  33. /* 使能IWDT */
  34. IWDT_Enable();
  35. }
  36. void feed_iwdt(void) {
  37. //喂狗
  38. if (0x01 == IWDT_GetFlagStatus()) //产生中断
  39. {
  40. IWDT_Clear();
  41. // printf("喂狗\r\n");
  42. }
  43. }
  44. //############### 测试一下看门狗 ##############//
  45. /***********************************************************************************************************************
  46. * =============================================================================================================
  47. **
  48. ***********************************************************************************************************************/
  49. int main(void) {
  50. HRC_Config(Enable, SCU_HRC_48M, Enable); //时钟源SCU_CLK_HRC
  51. SystemInit();
  52. DeviceClockAllEnable(); //打开所有外设时钟
  53. User_SysTickInit(); //滴答定时器初始化为(配置为1ms中断)
  54. SysTick_Enable();
  55. uart0_init();
  56. gpio_init();
  57. zkey_init(&key_module);
  58. t16n0_1_init(); //配置PA4输出pwm
  59. iwdt_init();
  60. power_on_ozone_work_state(); //上电工作情况
  61. ADCInit();
  62. //printf("Initialization completed\r\n");
  63. while (1) {
  64. // port_do_debug_light_state();
  65. port_key_state();
  66. if (get_ozone_starting_up_state() == true) { //开机中
  67. if (ozone_message.ozone_work_state == 2)
  68. is_ozone_work_time_over();
  69. if (ozone_message.ozone_interva_state == true){
  70. set_rgb_flicker();
  71. is_ozone_interva_time_over();
  72. }
  73. adc_loop_gather();
  74. } else if (get_ozone_starting_up_state() == false) { //关机
  75. }
  76. //test_iwdt();
  77. feed_iwdt(); //当产生中断的时候进行喂狗操作
  78. }
  79. }