From 5b0aeaaef10f093504749ddd4a8e531aed080792 Mon Sep 17 00:00:00 2001 From: tianjialong Date: Sat, 18 Mar 2023 15:14:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=86=E5=A4=87=E9=87=8D=E5=86=99HAL=5FIncTi?= =?UTF-8?q?ck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MDK-ARM/LWIP.uvguix.29643 | 4 ++-- usersrc/encoder.c | 36 +++++++++++++----------------------- usersrc/encoder.h | 1 - usersrc/usermain.c | 7 ++++++- 4 files changed, 21 insertions(+), 27 deletions(-) diff --git a/MDK-ARM/LWIP.uvguix.29643 b/MDK-ARM/LWIP.uvguix.29643 index 32ad0fe..42edc72 100644 --- a/MDK-ARM/LWIP.uvguix.29643 +++ b/MDK-ARM/LWIP.uvguix.29643 @@ -3651,9 +3651,9 @@ ..\usersrc\udpclient.c - 13 + 12 400 - 413 + 419 1 0 diff --git a/usersrc/encoder.c b/usersrc/encoder.c index 713f59a..59aa161 100644 --- a/usersrc/encoder.c +++ b/usersrc/encoder.c @@ -11,34 +11,34 @@ static uint32_t driven_encoder_gear_lastprocess = 0; static bool camera_encoder_light_state; static bool driven_encoder_light_state; -static encoder_t m_uarts[] = { +static encoder_t m_encoders[] = { {&camera_encoder, TIM_CHANNEL_1 | TIM_CHANNEL_2}, // 相机编码器 {&driven_encoder_gear, TIM_CHANNEL_1 | TIM_CHANNEL_2} // 从动编码器 }; void encoder_all_start(void) { - for (uint8_t i = 0; i < (sizeof(m_uarts) / sizeof(encoder_t)); i++) + for (uint8_t i = 0; i < (sizeof(m_encoders) / sizeof(encoder_t)); i++) { - HAL_TIM_Encoder_Start(m_uarts[i].tim_handler, m_uarts[i].tim_channel); + HAL_TIM_Encoder_Start(m_encoders[i].tim_handler, m_encoders[i].tim_channel); } } void encoder_all_stop(void) { - for (uint8_t i = 0; i < (sizeof(m_uarts) / sizeof(encoder_t)); i++) + for (uint8_t i = 0; i < (sizeof(m_encoders) / sizeof(encoder_t)); i++) { - HAL_TIM_Encoder_Stop(m_uarts[i].tim_handler, m_uarts[i].tim_channel); + HAL_TIM_Encoder_Stop(m_encoders[i].tim_handler, m_encoders[i].tim_channel); } } bool encoder_clear_counter(encoder_usage_t encoder) { - for (uint8_t i = 0; i < (sizeof(m_uarts) / sizeof(encoder_t)); i++) + for (uint8_t i = 0; i < (sizeof(m_encoders) / sizeof(encoder_t)); i++) { if (encoder == i) { - __HAL_TIM_GET_COUNTER(m_uarts[i].tim_handler) = 0; + __HAL_TIM_GET_COUNTER(m_encoders[i].tim_handler) = 0; return true; } } @@ -48,9 +48,9 @@ bool encoder_clear_counter(encoder_usage_t encoder) void encoder_all_clear_counter(void) { - for (uint8_t i = 0; i < (sizeof(m_uarts) / sizeof(encoder_t)); i++) + for (uint8_t i = 0; i < (sizeof(m_encoders) / sizeof(encoder_t)); i++) { - __HAL_TIM_GET_COUNTER(m_uarts[i].tim_handler) = 0; // 计数器值重新置位 + __HAL_TIM_GET_COUNTER(m_encoders[i].tim_handler) = 0; // 计数器值重新置位 } } @@ -60,13 +60,13 @@ bool encoder_read_with_encoder(encoder_usage_t encoder, uint32_t *encoder_value) switch (encoder) { case CAMERA_ENCODER: - *encoder_value += (short)__HAL_TIM_GET_COUNTER(m_uarts[encoder].tim_handler); - __HAL_TIM_GET_COUNTER(m_uarts[encoder].tim_handler) = 0; /* 清零 */ + *encoder_value += (short)__HAL_TIM_GET_COUNTER(m_encoders[encoder].tim_handler); + __HAL_TIM_GET_COUNTER(m_encoders[encoder].tim_handler) = 0; /* 清零 */ get_encoder_value_flag = true; break; case DRIVEN_ENCODER_GEAR: - *encoder_value += (short)__HAL_TIM_GET_COUNTER(m_uarts[encoder].tim_handler); - __HAL_TIM_GET_COUNTER(m_uarts[encoder].tim_handler) = 0; /* 清零 */ + *encoder_value += (short)__HAL_TIM_GET_COUNTER(m_encoders[encoder].tim_handler); + __HAL_TIM_GET_COUNTER(m_encoders[encoder].tim_handler) = 0; /* 清零 */ get_encoder_value_flag = true; break; @@ -299,13 +299,3 @@ void encoder_switch_toggle_on_off_state(encoder_usage_t encoder) // error } } - -void encoder_data_acquisition_schedule(void) -{ - static uint32_t acquisition_lastprocess; - if (sys_haspassedms(acquisition_lastprocess) > 1) - { - acquisition_lastprocess = HAL_GetTick(); - printf("acquisition_lastprocess:%d\r\n", acquisition_lastprocess); - } -} diff --git a/usersrc/encoder.h b/usersrc/encoder.h index 816d5b4..bd9bfd8 100644 --- a/usersrc/encoder.h +++ b/usersrc/encoder.h @@ -44,4 +44,3 @@ void encoder_switch_encoder_clear_count_and_structer_count(encoder_usage_t encod void encoder_light_switch_set_color_and_brightness(encoder_usage_t encoder, encoder_light_color_table_t color, uint16_t brightness); void encoder_switch_close_light(encoder_usage_t encoder); void encoder_switch_toggle_on_off_state(encoder_usage_t encoder); -void encoder_data_acquisition_schedule(void); diff --git a/usersrc/usermain.c b/usersrc/usermain.c index df676bf..d533700 100644 --- a/usersrc/usermain.c +++ b/usersrc/usermain.c @@ -110,6 +110,12 @@ void netif_link_down_user_func(void) encoder_light_switch_set_color_and_brightness(DRIVEN_ENCODER_GEAR, ENCODER_LIGHT_COLOR_RED, encoder_light_max_brightness); } +/* 重写了该函数,需要添加编码器采集部分的逻辑 */ +void HAL_IncTick(void) +{ + uwTick += uwTickFreq; +} + void user_main() { printf("==============ethernet_sound_acquisition_card=============\r\n"); @@ -129,7 +135,6 @@ void user_main() at_cmd_processer_try_process_data(); encoder_light_schedule(); port_do_debug_light_state(); - // encoder_data_acquisition_schedule(); osDelay(1); } }