| | |
| | | |
| | | #include "sn74hc595.h" |
| | | uint8_t QA,QB,QC,QD,QE,QF,QG,QH; |
| | | void IO_control_init(void) |
| | | { |
| | | //SDA->SER |
| | | io_open_drain_set(SER_PIN, 0); |
| | | io_pin_mux_set(SER_PIN,IO_FUNC0);//把原先io SDA变为普通GPIO |
| | | gpio_pin_set_dir(SER_PIN , GPIO_DIR_OUT, 0);//复用原先GPIO引脚为SER |
| | | io_pull_set(SER_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4); |
| | | //SRCLK |
| | | io_pull_set(SER_PIN , IO_PULL_UP, IO_PULL_UP_NONE); |
| | | //SRCLK 111 |
| | | io_pin_mux_set(SRCLK_PIN,IO_FUNC0); |
| | | gpio_pin_set_dir(SRCLK_PIN , GPIO_DIR_OUT, 0); |
| | | io_pull_set(SRCLK_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4); |
| | | io_pull_set(SRCLK_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL0); |
| | | //RCLK |
| | | io_pin_mux_set(RCLK_PIN,IO_FUNC0); |
| | | gpio_pin_set_dir(RCLK_PIN , GPIO_DIR_OUT, 0); |
| | | io_pull_set(RCLK_PIN , IO_PULL_DOWN, IO_PULL_UP_LEVEL4); |
| | | io_pull_set(RCLK_PIN , IO_PULL_UP, IO_PULL_UP_LEVEL0); |
| | | } |
| | | uint8_t data_temp,temp_bit; |
| | | |
| | | void IO_LED_control_change(uint8_t data) |
| | | { |
| | | data_temp=data; |
| | | uint8_t temp; |
| | | for(int i=0; i<8; i++) { |
| | | temp=data&1; |
| | | temp_bit=temp; |
| | | uint8_t temp=data&1; |
| | | if(temp)//写入低位数据 |
| | | SER_1; |
| | | else |
| | |
| | | air780_power_state=air_state; |
| | | update_led_power_state();//更新控制引脚 |
| | | } |
| | | |
| | | void update_led_power_state(void) |
| | | { |
| | | uint8_t control_state=air780_power_state<<7|gps_power_state<<6|motor_power_state<<5|uwb_state<<4|gps_success_state<<3|air780_success_state<<2|red_charge_state<<1|green_charge_state; |
| | | //QA //QB //QC //QD //QE //QF //QG //QH |
| | | uint8_t control_state=QA<<7|QB<<6|QC<<5|QD<<4|QE<<3|QF<<2|QG<<1|QH; |
| | | IO_LED_control_change(control_state); |
| | | } |
| | | void blink_led(uint8_t*state) |
| | |
| | | update_led_power_state(); |
| | | } |
| | | |
| | | void gps_led_on(void) |
| | | //void motor_power_on(void) |
| | | //{ |
| | | // motor_power_state=1;//uwb亮起 |
| | | // update_led_power_state(); |
| | | //} |
| | | //void gps_led_on(void) |
| | | //{ |
| | | // gps_success_state=1;//uwb亮起 |
| | | // update_led_power_state(); |
| | | //} |
| | | //void gps_led_off(void) |
| | | //{ |
| | | // gps_success_state=0;//uwb灭 |
| | | // update_led_power_state(); |
| | | //} |
| | | //void uwb_led_on(void) |
| | | //{ |
| | | // uwb_state=1;//uwb亮起 |
| | | // update_led_power_state(); |
| | | //} |
| | | //void uwb_led_off(void) |
| | | //{ |
| | | // uwb_state=0;//uwb灭 |
| | | // update_led_power_state(); |
| | | //} |
| | | //void air780_led_on(void) |
| | | //{ |
| | | // air780_success_state=1;//uwb亮起 |
| | | // update_led_power_state(); |
| | | //} |
| | | //void air780_led_off(void) |
| | | //{ |
| | | // air780_success_state=0;//uwb灭 |
| | | // update_led_power_state(); |
| | | //} |
| | | //马达 |
| | | void MOTOR_QA_state(uint8_t state) |
| | | { |
| | | gps_success_state=1;//uwb亮起 |
| | | QA=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void gps_led_off(void) |
| | | void QB_state(uint8_t state) |
| | | { |
| | | gps_success_state=0;//uwb灭 |
| | | QB=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void uwb_led_on(void) |
| | | void QC_state(uint8_t state) |
| | | { |
| | | uwb_state=1;//uwb亮起 |
| | | QC=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void uwb_led_off(void) |
| | | void RED_LED_QD_state(uint8_t state) |
| | | { |
| | | uwb_state=0;//uwb灭 |
| | | QD=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void air780_led_on(void) |
| | | void GREEN_LED_QE_state(uint8_t state) |
| | | { |
| | | air780_success_state=1;//uwb亮起 |
| | | QE=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void air780_led_off(void) |
| | | void BT_LED_QF_state(uint8_t state) |
| | | { |
| | | air780_success_state=0;//uwb灭 |
| | | QF=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void charge_red_on(void) |
| | | void LORA_LED_QG_state(uint8_t state) |
| | | { |
| | | red_charge_state=1;//充电红灯亮起 |
| | | QG=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void charge_red_off(void) |
| | | void UWB_LED_QH_state(uint8_t state) |
| | | { |
| | | red_charge_state=0;//充电红灯熄灭 |
| | | QH=state;//QA高电平 |
| | | update_led_power_state(); |
| | | } |
| | | void charge_green_on(void) |
| | | { |
| | | green_charge_state=1;//充电绿灯亮起 |
| | | update_led_power_state(); |
| | | } |
| | | void charge_green_off(void) |
| | | { |
| | | green_charge_state=0;//充电绿灯熄灭 |
| | | update_led_power_state(); |
| | | } |
| | | |
| | | void charge_state_change(void) |
| | | { |
| | | if(gpio_pin_get_val(INPUT_5V_Pin)) |
| | | { |
| | | if(bat_percent==100) |
| | | { |
| | | red_charge_state=0; |
| | | green_charge_state=1; |
| | | }else{ |
| | | red_charge_state=1; |
| | | green_charge_state=0; |
| | | } |
| | | enbale_blink_flag=0; |
| | | update_led_power_state(); |
| | | }else{ |
| | | if(bat_percent>15) |
| | | { |
| | | charge_green_off(); |
| | | charge_red_off(); |
| | | enbale_blink_flag=0; |
| | | }else{ |
| | | // green_charge_state=0; |
| | | // if(secondtask_count%2==0) |
| | | // { |
| | | // red_charge_state=0; |
| | | // }else{ |
| | | // red_charge_state=1; |
| | | // } |
| | | // update_led_power_state(); |
| | | enbale_blink_flag=1; |
| | | } |
| | | } |
| | | } |
| | | //void QA_OFF(void) |
| | | //{ |
| | | // QA=0;//QA高电平 |
| | | // update_led_power_state(); |
| | | //} |