From bbfff96caa4d20cca54354f2eb837d78984570eb Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期四, 31 十月 2024 10:31:43 +0800 Subject: [PATCH] 修改标签接收逻辑 --- keil/include/main/main.c | 144 ++++++++++++++++++++++++++++-------------------- 1 files changed, 84 insertions(+), 60 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 84f4d6d..be38aa0 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -281,20 +281,21 @@ uint8_t flag_sleeptimer,flag_secondtask,secondtask_count; static void sleep_timer_callback(void *dev, uint32_t time) { - IO_control_init(); - UWBPoll(); - - - MotorPoll(); + g_start_send_flag=1; +// IO_control_init(); +// UWBPoll(); +// +// +// MotorPoll(); - if(secondtask_count++%2==0) - { - flag_secondtask = 1; - }else{ - flag_secondtask = 0; - } +// if(secondtask_count++%2==0) +// { +// flag_secondtask = 1; +// }else{ +// flag_secondtask = 0; +// } - flag_sleeptimer = 1; +// flag_sleeptimer = 1; //马达震动逻辑 if(g_com_map[MOTOR_ENABLE]) @@ -338,6 +339,8 @@ { Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 parameter_init_anchor();//g_com_map表初始化角色默认为基站 + g_com_map[DEV_ID]=0x6789; + g_com_map[GROUP_ID]=9; dev_id=g_com_map[DEV_ID];//这里不太对 group_id=g_com_map[GROUP_ID];//组ID tag_frequency = 1000/g_com_map[COM_INTERVAL];//测距频率这个存的是测距时间 @@ -492,36 +495,46 @@ uint32_t successful_cnt=0; uint8_t flag_4guart_needinit=0; #define TX_LEN 10 +#define RX_LEN 10 uint8_t tx_test_buf[TX_LEN] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; +uint8_t RF_RX_temp[RX_LEN]={0}; extern struct RxDoneMsg RxDoneParams; static void Lora_irq_handler(enum IO_PIN_T pin) { ceshi++; rf_irq_process(); - if(rf_get_transmit_flag() == RADIO_FLAG_TXDONE) - { - rf_set_transmit_flag(RADIO_FLAG_IDLE); - rf_enter_continous_rx(); -// rf_delay_ms(1000); -// if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) -// { -//// rf_enter_continous_rx(); -// } -// else -// { -// error_cnt ++; -// } - } + //g_start_send_flag=1; +// if(rf_get_transmit_flag() == RADIO_FLAG_TXDONE) +// { +// rf_set_transmit_flag(RADIO_FLAG_IDLE); +// rf_enter_continous_rx(); +//// rf_delay_ms(1000); +//// if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) +//// { +////// rf_enter_continous_rx(); +//// } +//// else +//// { +//// error_cnt ++; +//// } +// } if(rf_get_recv_flag() == RADIO_FLAG_RXDONE) { rf_set_recv_flag(RADIO_FLAG_IDLE); + memcpy(RF_RX_temp,RxDoneParams.Payload,RxDoneParams.Size); + if(RF_RX_temp[0]==0) + { + + } + // rf_enter_continous_rx(); //重新进入接收模式 + //UwbRange(); // DDL_Printf("Rx : SNR: %f ,RSSI: %d \r\n", RxDoneParams.Snr, RxDoneParams.Rssi); - int i=0; + //int i=0; // for(i = 0; i < RxDoneParams.Size; i++) // { // printf("0x%02x ", RxDoneParams.Payload[i]); // } - error_cnt ++; + // error_cnt ++; } if((rf_get_recv_flag() == RADIO_FLAG_RXTIMEOUT) || (rf_get_recv_flag() == RADIO_FLAG_RXERR)) { @@ -584,18 +597,20 @@ Board_LORA_NVIC_Init(Lora_irq_handler); Lora_init(); rf_set_default_para(); +// + rf_enter_continous_rx(); +// rf_set_transmit_flag(RADIO_FLAG_TXDONE); +// rf_set_transmit_flag(RADIO_FLAG_TXDONE); +// if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != 0) +// { +// error_cnt++; +// } +// else +// { +// successful_cnt ++; +// } - rf_enter_continous_tx(); -// rf_set_transmit_flag(RADIO_FLAG_TXDONE); -// rf_set_transmit_flag(RADIO_FLAG_TXDONE); - if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != 0) - { - error_cnt++; - } - else - { - successful_cnt ++; - } + // while (rf_get_transmit_flag() == RADIO_FLAG_IDLE) ; // // rf_set_transmit_flag(RADIO_FLAG_IDLE); @@ -610,22 +625,27 @@ // gps_air780_power_change(0,1);//开启gps,4G ////加速度计初始化必须在IO_control_init之前因为复用SDA引脚 // adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 -// Program_Init(); + Program_Init(); // uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); // //// Initialize low power mode // power_init(); // AIR780E_Reset(); //4G模块重启,耗时1.5秒,这个是无法同步的关键 -// sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback); + sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback); -// sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试 + sleep_timer_start(__MS_TO_32K_CNT(1000));//测试 // board_acceleration_detection_init(move_handler); - - - + Uwbinit(); while (1) { + if(g_start_send_flag) + { + g_start_send_flag=0; + + } + + UwbRange(); // rf_irq_process(); // if(rf_get_transmit_flag() == RADIO_FLAG_TXDONE) // { @@ -643,21 +663,25 @@ // } -// - -// io14_state=gpio_pin_get_val(LORA_DIO); - rf_set_transmit_flag(RADIO_FLAG_IDLE); - rf_delay_ms(1000); - rf_enter_continous_tx(); -// rf_set_transmit_flag(RADIO_FLAG_TXDONE); - if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) - { -// rf_enter_continous_rx(); - } - else - { - successful_cnt ++; - } +//// +// +//// io14_state=gpio_pin_get_val(LORA_DIO); +// rf_set_transmit_flag(RADIO_FLAG_IDLE); +// rf_delay_ms(1000); +// rf_enter_continous_tx(); +//// rf_set_transmit_flag(RADIO_FLAG_TXDONE); +// if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) +// { +//// rf_enter_continous_rx(); +// } +// else +// { +// successful_cnt ++; +// } + + + + // while (rf_get_transmit_flag() == RADIO_FLAG_IDLE) ; // // rf_set_transmit_flag(RADIO_FLAG_IDLE); -- Gitblit v1.9.3