| | |
| | | #include "PCA9555.h" |
| | | #include "DBG.h" |
| | | uint8_t gps_led_output_state,tts_enbale_output_state,wake_up_output_state,air780e_enable_output_state,sos_enable_output_state,gps_backup_output_state,gps_power_output_state,main_ri_output_state;//1组output IO口从左到右1.0~1.7 |
| | | uint8_t mcu_a_output_state,chg_g_output_state,lora_irq_output_state,lora_nrst_output_state,adc_minius_output_state,input_5v_output_state,pwr_on_output_state,pwr_enable_output_state;//2组output IO口从左到右0.0~0.7 |
| | | uint8_t pca9555writedata_config[10];//暂存寄存器所有配置的数组 |
| | |
| | | */ |
| | | uint16_t gpio_state111; |
| | | extern uint8_t input5v_time; |
| | | HIDO_UINT8 _5VState = 0; |
| | | HIDO_UINT8 Get5VState() |
| | | { |
| | | return _5VState; |
| | | } |
| | | |
| | | void Set5VState(HIDO_UINT8 state) |
| | | { |
| | | if(_5VState != state) |
| | | { |
| | | DBG_SetMode(DBG_MODE_CHARGE); |
| | | } |
| | | _5VState = state; |
| | | } |
| | | |
| | | int read_5v_input_pca(void) |
| | | { |
| | | if(input5v_time) |
| | | { |
| | | input5v_time=0; |
| | | PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值 |
| | | uint16_t gpio_state; |
| | | gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1]; |
| | | gpio_state111=gpio_state; |
| | | if(gpio_state==0xFFFF) |
| | | {return 0;} |
| | | if(INPUT_5V_POSITION&gpio_state) |
| | | return 1; |
| | | else { |
| | | return 0; |
| | | } |
| | | input5v_time=0; |
| | | PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值 |
| | | uint16_t gpio_state; |
| | | gpio_state=(uint16_t)pca9555writedata_input[0]<<8|pca9555writedata_input[1]; |
| | | gpio_state111=gpio_state; |
| | | if(gpio_state==0xFFFF) |
| | | {return 0;} |
| | | if(INPUT_5V_POSITION&gpio_state) |
| | | { |
| | | Set5VState(1); |
| | | return 1; |
| | | } |
| | | else |
| | | { |
| | | Set5VState(0); |
| | | return 0; |
| | | } |
| | | } |
| | | else { |
| | | Set5VState(0); |
| | | return 0; |
| | | } |
| | | |