power_failure_save.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "gd32f30x_libopt.h"
  2. #include "stdint.h"
  3. #include "Main.h"
  4. #include "At24cxx.h"
  5. void power_save_init(void)
  6. {
  7. #if 0
  8. rcu_periph_clock_enable(RCU_AF);
  9. rcu_periph_clock_enable(RCU_GPIOB);
  10. gpio_init(GPIOB,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_8);
  11. nvic_irq_enable(EXTI5_9_IRQn,0,4);
  12. gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOB, GPIO_PIN_SOURCE_8);
  13. exti_init(EXTI_8,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
  14. exti_interrupt_flag_clear(EXTI_8);
  15. #endif
  16. }
  17. void EXTI5_9_IRQHandler(void)
  18. {
  19. #if 0
  20. if(RESET != exti_interrupt_flag_get(EXTI_8))
  21. {
  22. uint8_t buff[4*RelaySlaveChaNum] = {0};
  23. for(int i = 0 ; i < RelaySlaveChaNum;i++)
  24. {
  25. int temp = i << 2;
  26. buff[temp + 0] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 24;
  27. buff[temp + 1] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 16;
  28. buff[temp + 2] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 8;
  29. buff[temp + 3] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 0;
  30. }
  31. AT24CxxWrite(Eepr_AC_Sing_Total_Consumer_addr, buff,4*RelaySlaveChaNum);
  32. exti_interrupt_flag_clear(EXTI_8);
  33. }
  34. #endif
  35. }