Browse Source

增加最小距离值,未成功

uav-1-target
zbr 3 years ago
parent
commit
6172ab36fc
  1. 17
      BSP/insifhtica_QOAR1271.c
  2. 20
      MDK-ARM/proximity_uavcan_converter.uvguix.zengb

17
BSP/insifhtica_QOAR1271.c

@ -24,11 +24,13 @@ struct mr72_c{
uint8_t rollcount; uint8_t rollcount;
uint8_t rcs; uint8_t rcs;
}mr72_c_data; }mr72_c_data;
struct effective_distance typedef struct effective_distance
{ {
uint16_t dist_cm; uint16_t dist_cm;
uint32_t time_ms; uint32_t time_ms;
}eff_distance; };
struct effective_distance eff_distance;
struct effective_distance min_distance;
uint16_t range_arr[8]; uint16_t range_arr[8];
float last_range; float last_range;
@ -206,11 +208,17 @@ bool decode_mr72(int16_t c)
void data_process(void){ void data_process(void){
// 其中一个区块数据更新 // 其中一个区块数据更新
if (proximity1_queueHandle != NULL && HAL_GetTick() - uavcan_data_tick > 100) // uavcan发送,50ms间隔 if (proximity1_queueHandle != NULL && HAL_GetTick() - uavcan_data_tick > 100) // uavcan发送,50ms间隔
{ {
proximity_t data; proximity_t data;
if (HAL_GetTick() - eff_distance.time_ms < 500) if (HAL_GetTick() - eff_distance.time_ms < 500)
{ {
data.d0 = eff_distance.dist_cm;
if(min_distance.dist_cm < 10){ // 如果最小值是0,则直接赋值
min_distance.dist_cm = eff_distance.dist_cm;
}else{
min_distance.dist_cm = min_distance.dist_cm < eff_distance.dist_cm?min_distance.dist_cm : eff_distance.dist_cm;
}
data.d0 = min_distance.dist_cm;
}else{ }else{
data.d0 = 3900; data.d0 = 3900;
} }
@ -223,6 +231,7 @@ void data_process(void){
data.d315 = 4500; data.d315 = 4500;
myOsMessageQueuePut(proximity1_queueHandle, &data, 0, 10); myOsMessageQueuePut(proximity1_queueHandle, &data, 0, 10);
uavcan_data_tick = HAL_GetTick(); uavcan_data_tick = HAL_GetTick();
min_distance.dist_cm = 3800;
} }
} }

20
MDK-ARM/proximity_uavcan_converter.uvguix.zengb

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save