From 57b984b8395bb30b2d170369c75f19722502b104 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期一, 21 四月 2025 16:38:37 +0800 Subject: [PATCH] 新增加速度计步数检测功能,3s发一次数据和停止30秒1分钟发一次数据 --- keil/include/drivers/PCA9555.c | 37 ++++++++++++++++++++++++++++--------- 1 files changed, 28 insertions(+), 9 deletions(-) diff --git a/keil/include/drivers/PCA9555.c b/keil/include/drivers/PCA9555.c index 6b167e5..ede8444 100644 --- a/keil/include/drivers/PCA9555.c +++ b/keil/include/drivers/PCA9555.c @@ -79,7 +79,7 @@ uint8_t ucErrTime=0; // IIC2_SDA_IN(); - gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,1); //SDA设置为输入等待接收端的应答信号 + gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,0); //SDA设置为输入等待接收端的应答信号 SDA_1; delay_us(6); SCL_1; @@ -107,7 +107,7 @@ void IIC2_pca_send_Ack(void) { SCL_0; - SDA_0;//读取SDA电平为低则有应答 +/// SDA_0;//读取SDA电平为低则有应答 delay_us(10); SCL_1; delay_us(10); @@ -530,7 +530,8 @@ PCA9555_Set_One_Value_Config(GREEN_LED,0); //设置GREEN_LED为输出 //管脚 PCA9555_Set_One_Value_Config(LORA_NRST,0); //设置LORA_NRST为输出 - PCA9555_Set_One_Value_Config(BT_EN,0); //设置BT_EN为输出 + PCA9555_Set_One_Value_Config(BT_EN,0); //设置BT_EN为输出 + PCA9555_Set_One_Value_Output(BT_EN,0); PCA9555_Set_One_Value_Config(MOTO,0); //设置MOTO为输出 //PCA9555_Set_One_Value_Config(LORA_IRQ,1); //设置LORAIRQ为输入 @@ -597,11 +598,25 @@ } uint8_t LORA_IRQ_flag=0; -uint8_t SOS_KEY_STATE; +uint8_t SOS_KEY_STATE=0; +extern uint16_t uwb_time_count; void SOS_irq_callback() { - SOS_KEY_STATE=1; - + SOS_KEY_STATE=!SOS_KEY_STATE; + if(SOS_KEY_STATE) + { + GREEN_LED_ON; +// onemin_onesecond_flag=1; +// uwb_time_count=0; +// CloseUWB(); + } + else + { +// onemin_onesecond_flag=0; + GREEN_LED_OFF; +// uwb_time_count=0; +// CloseUWB(); + } } //void WAKE_UP_irq_callback() @@ -610,8 +625,10 @@ //} void move_handler() { - nomove_count=0; + nomove_count=0; + } + void check_input_change(void) { uint16_t gpio_state; @@ -626,11 +643,13 @@ } if(WK_UP_POSITION&gpio_state) { + //移动 move_handler(); } - //uart_change_check(gpio_state); } + + //static void pca_input_detect_irq_handler(enum IO_PIN_T pin) @@ -645,7 +664,7 @@ gpio_pin_set_dir(PCA_INPUT_DETECT , GPIO_DIR_IN, 0); io_pull_set(PCA_INPUT_DETECT, IO_PULL_UP, IO_PULL_UP_LEVEL2); gpio_enable_irq(PCA_INPUT_DETECT, GPIO_IRQ_TYPE_FALLING_EDGE, irq_handler); - power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW); +// power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW); } -- Gitblit v1.9.3