#include "gd32f30x_libopt.h" #include "stdint.h" #include "Main.h" #include "At24cxx.h" void power_save_init(void) { #if 0 rcu_periph_clock_enable(RCU_AF); rcu_periph_clock_enable(RCU_GPIOB); gpio_init(GPIOB,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_8); nvic_irq_enable(EXTI5_9_IRQn,0,4); gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOB, GPIO_PIN_SOURCE_8); exti_init(EXTI_8,EXTI_INTERRUPT,EXTI_TRIG_FALLING); exti_interrupt_flag_clear(EXTI_8); #endif } void EXTI5_9_IRQHandler(void) { #if 0 if(RESET != exti_interrupt_flag_get(EXTI_8)) { uint8_t buff[4*RelaySlaveChaNum] = {0}; for(int i = 0 ; i < RelaySlaveChaNum;i++) { int temp = i << 2; buff[temp + 0] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 24; buff[temp + 1] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 16; buff[temp + 2] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 8; buff[temp + 3] = EE_ACDC_Total_Consum_Read_Reg[i].ACDC_Consumption >> 0; } AT24CxxWrite(Eepr_AC_Sing_Total_Consumer_addr, buff,4*RelaySlaveChaNum); exti_interrupt_flag_clear(EXTI_8); } #endif }