From cb5e6f848ca666d3ad7f7efb7cb5797a49778602 Mon Sep 17 00:00:00 2001 From: bmy <2583236812@qq.com> Date: Sat, 3 Aug 2024 12:33:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A8=E9=80=81=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E5=99=A8=E5=8F=8C=E8=BE=B9=E9=87=87=E6=A0=B7=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eide/eide.json | 5 +-- BC2D.ATWP | 8 ++++- app/by_motion.c | 12 +++---- project/inc/at32f413_wk_config.h | 59 ++++++++++++++++++++++++++++++++ project/src/at32f413_wk_config.c | 4 +-- project/src/main.c | 13 ++++--- 6 files changed, 83 insertions(+), 18 deletions(-) diff --git a/.eide/eide.json b/.eide/eide.json index 7b61839..c60506b 100644 --- a/.eide/eide.json +++ b/.eide/eide.json @@ -3,7 +3,6 @@ "type": "ARM", "dependenceList": [], "srcDirs": [ - ".eide/deps", "3rd-part", "app" ], @@ -132,14 +131,12 @@ "project/inc", ".cmsis/include", "project/MDK_V5/RTE/_BC2D", - ".eide/deps", "3rd-part/dwt_delay", "3rd-part/PID-Library", "app", "3rd-part/lwprintf" ], "libList": [], - "sourceDirList": [], "defineList": [ "AT32F413CBT7", "USE_STDPERIPH_DRIVER" @@ -147,5 +144,5 @@ } } }, - "version": "3.3" + "version": "3.4" } \ No newline at end of file diff --git a/BC2D.ATWP b/BC2D.ATWP index f17d0ca..b66c05d 100644 --- a/BC2D.ATWP +++ b/BC2D.ATWP @@ -54,12 +54,18 @@ + + + + + + @@ -135,7 +141,7 @@ BC2D - C:/Users/ForgotDoge/Desktop/BC2024/firmware + /home/evan/Desktop/Workplace MDK_V5 true 0x200 diff --git a/app/by_motion.c b/app/by_motion.c index 49613cc..cb626c8 100644 --- a/app/by_motion.c +++ b/app/by_motion.c @@ -37,7 +37,7 @@ int16_t by_motion_get_speed_m1(void) #define alpha (0.1f) static float last_speed = 0.0f; param_m1.real_speed = alpha * last_speed + (1.0f - alpha) * (float)(-1 * (int16_t)tmr_counter_value_get(TMR2)); - last_speed = param_m1.real_speed; + last_speed = param_m1.real_speed; tmr_counter_value_set(TMR2, 0); return (int16_t)param_m1.real_speed; #undef alpha @@ -48,7 +48,7 @@ int16_t by_motion_get_speed_m2(void) #define alpha (0.1f) static float last_speed = 0.0f; param_m2.real_speed = alpha * last_speed + (1.0f - alpha) * (float)(-1 * (int16_t)tmr_counter_value_get(TMR3)); - last_speed = param_m2.real_speed; + last_speed = param_m2.real_speed; tmr_counter_value_set(TMR3, 0); return (int16_t)param_m2.real_speed; #undef alpha @@ -118,13 +118,13 @@ void by_motion_can_handle(uint16_t stdd_id, const uint8_t *data, uint8_t len) #if defined(BC2D_MODEL1) int16_t speed_m1_temp = (int16_t)(data[0] | (data[1] << 8)); int16_t speed_m2_temp = (int16_t)(data[2] | (data[3] << 8)); - by_motion_set_speed_m1(speed_m1_temp); - by_motion_set_speed_m2(speed_m2_temp); + by_motion_set_speed_m1(speed_m1_temp * 2); + by_motion_set_speed_m2(speed_m2_temp * 2); #elif defined(BC2D_MODEL2) int16_t speed_m1_temp = (int16_t)(data[4] | (data[5] << 8)); int16_t speed_m2_temp = (int16_t)(data[6] | (data[7] << 8)); - by_motion_set_speed_m1(speed_m1_temp); - by_motion_set_speed_m2(speed_m2_temp); + by_motion_set_speed_m1(speed_m1_temp * 2); + by_motion_set_speed_m2(speed_m2_temp * 2); #endif } diff --git a/project/inc/at32f413_wk_config.h b/project/inc/at32f413_wk_config.h index 4c017e2..f490149 100644 --- a/project/inc/at32f413_wk_config.h +++ b/project/inc/at32f413_wk_config.h @@ -55,6 +55,65 @@ extern "C" { /* add user code end exported macro */ +/* add user code begin dma define */ +/* user can only modify the dma define value */ +//#define DMA1_CHANNEL1_BUFFER_SIZE 0 +//#define DMA1_CHANNEL1_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL1_PERIPHERAL_BASE_ADDR 0 + +//#define DMA1_CHANNEL2_BUFFER_SIZE 0 +//#define DMA1_CHANNEL2_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL2_PERIPHERAL_BASE_ADDR 0 + +//#define DMA1_CHANNEL3_BUFFER_SIZE 0 +//#define DMA1_CHANNEL3_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL3_PERIPHERAL_BASE_ADDR 0 + +//#define DMA1_CHANNEL4_BUFFER_SIZE 0 +//#define DMA1_CHANNEL4_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL4_PERIPHERAL_BASE_ADDR 0 + +//#define DMA1_CHANNEL5_BUFFER_SIZE 0 +//#define DMA1_CHANNEL5_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL5_PERIPHERAL_BASE_ADDR 0 + +//#define DMA1_CHANNEL6_BUFFER_SIZE 0 +//#define DMA1_CHANNEL6_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL6_PERIPHERAL_BASE_ADDR 0 + +//#define DMA1_CHANNEL7_BUFFER_SIZE 0 +//#define DMA1_CHANNEL7_MEMORY_BASE_ADDR 0 +//#define DMA1_CHANNEL7_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL1_BUFFER_SIZE 0 +//#define DMA2_CHANNEL1_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL1_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL2_BUFFER_SIZE 0 +//#define DMA2_CHANNEL2_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL2_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL3_BUFFER_SIZE 0 +//#define DMA2_CHANNEL3_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL3_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL4_BUFFER_SIZE 0 +//#define DMA2_CHANNEL4_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL4_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL5_BUFFER_SIZE 0 +//#define DMA2_CHANNEL5_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL5_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL6_BUFFER_SIZE 0 +//#define DMA2_CHANNEL6_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL6_PERIPHERAL_BASE_ADDR 0 + +//#define DMA2_CHANNEL7_BUFFER_SIZE 0 +//#define DMA2_CHANNEL7_MEMORY_BASE_ADDR 0 +//#define DMA2_CHANNEL7_PERIPHERAL_BASE_ADDR 0 +/* add user code end dma define */ + /* exported functions ------------------------------------------------------- */ /* system clock config. */ void wk_system_clock_config(void); diff --git a/project/src/at32f413_wk_config.c b/project/src/at32f413_wk_config.c index 5f0a3c0..0c32106 100644 --- a/project/src/at32f413_wk_config.c +++ b/project/src/at32f413_wk_config.c @@ -470,7 +470,7 @@ void wk_tmr2_init(void) tmr_input_struct.input_filter_value = 0; tmr_input_channel_init(TMR2, &tmr_input_struct, TMR_CHANNEL_INPUT_DIV_1); - tmr_encoder_mode_config(TMR2, TMR_ENCODER_MODE_A, TMR_INPUT_RISING_EDGE, TMR_INPUT_RISING_EDGE); + tmr_encoder_mode_config(TMR2, TMR_ENCODER_MODE_C, TMR_INPUT_RISING_EDGE, TMR_INPUT_RISING_EDGE); tmr_counter_enable(TMR2, TRUE); @@ -538,7 +538,7 @@ void wk_tmr3_init(void) tmr_input_struct.input_filter_value = 0; tmr_input_channel_init(TMR3, &tmr_input_struct, TMR_CHANNEL_INPUT_DIV_1); - tmr_encoder_mode_config(TMR3, TMR_ENCODER_MODE_A, TMR_INPUT_RISING_EDGE, TMR_INPUT_RISING_EDGE); + tmr_encoder_mode_config(TMR3, TMR_ENCODER_MODE_C, TMR_INPUT_RISING_EDGE, TMR_INPUT_RISING_EDGE); tmr_counter_enable(TMR3, TRUE); diff --git a/project/src/main.c b/project/src/main.c index bc72ac5..afc0bca 100644 --- a/project/src/main.c +++ b/project/src/main.c @@ -68,10 +68,10 @@ /* add user code end 0 */ /** - * @brief main function. - * @param none - * @retval none - */ + * @brief main function. + * @param none + * @retval none + */ int main(void) { /* add user code begin 1 */ @@ -124,8 +124,11 @@ int main(void) LOGI("init done"); /* add user code end 2 */ - while (1) { + while(1) + { /* add user code begin 3 */ + // lwprintf("%f,%f,%f\r\n", param_m1.target_speed, param_m1.real_speed, param_m1.out_pwm / 10); + // DWT_Delay(20000); /* add user code end 3 */ } }