From 76dfec4622c64f983570f33588e81e63187fd809 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 15 十一月 2024 15:16:15 +0800 Subject: [PATCH] 增加了uwb_app配置 --- keil/sn74hc595.c | 162 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 124 insertions(+), 38 deletions(-) diff --git a/keil/sn74hc595.c b/keil/sn74hc595.c index 14f9088..1c58ab3 100644 --- a/keil/sn74hc595.c +++ b/keil/sn74hc595.c @@ -3,61 +3,147 @@ 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); + 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_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_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); //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_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); } - +uint8_t data_temp,temp_bit; void IO_LED_control_change(uint8_t data) { -for(int i=0;i<8;i++){ - uint8_t temp=data&1; - if(temp)//写入低位数据 - SER_1; - else - SER_0; - SRCLK_1;//将数据放入移位寄存器 - SRCLK_0; - data>>=1; -} -RCLK_1;//将数据存入存储器并输出 -RCLK_0; + data_temp=data; + uint8_t temp; + for(int i=0; i<8; i++) { + temp=data&1; + temp_bit=temp; + if(temp)//写入低位数据 + SER_1; + else + SER_0; + SRCLK_1;//将数据放入移位寄存器 + SRCLK_0; + data>>=1; + } + RCLK_1;//将数据存入存储器并输出 + RCLK_0; } //高电平开启power,低电平关闭power void gps_air780_power_change(uint8_t gps_state,uint8_t air_state) { -gps_power_state=gps_state; -air780_power_state=air_state; -updata_led_power_state();//更新控制引脚 + gps_power_state=gps_state; + air780_power_state=air_state; + update_led_power_state();//更新控制引脚 } -void updata_led_power_state(void) +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|chaging_state<<1|changed_state; -IO_LED_control_change(control_state); + 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; + IO_LED_control_change(control_state); } void blink_led(uint8_t*state) -{*state=~*state; -updata_led_power_state(); -delay_us(100); -*state=~*state; -updata_led_power_state(); +{ if(*state==0) + *state=1; + else { + *state=0; + } + update_led_power_state(); + delay_us(1000); + if(*state==0) + *state=1; + else { + *state=0; + } + 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亮起 - updata_led_power_state(); + uwb_state=1;//uwb亮起 + update_led_power_state(); } void uwb_led_off(void) { - uwb_state=0;//uwb灭 - updata_led_power_state(); + 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 charge_red_on(void) +{ + red_charge_state=1;//充电红灯亮起 + update_led_power_state(); +} +void charge_red_off(void) +{ + red_charge_state=0;//充电红灯熄灭 + 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; + } + } } \ No newline at end of file -- Gitblit v1.9.3