feat: 推送编码器双边采样更改
This commit is contained in:
@@ -3,7 +3,6 @@
|
|||||||
"type": "ARM",
|
"type": "ARM",
|
||||||
"dependenceList": [],
|
"dependenceList": [],
|
||||||
"srcDirs": [
|
"srcDirs": [
|
||||||
".eide/deps",
|
|
||||||
"3rd-part",
|
"3rd-part",
|
||||||
"app"
|
"app"
|
||||||
],
|
],
|
||||||
@@ -132,14 +131,12 @@
|
|||||||
"project/inc",
|
"project/inc",
|
||||||
".cmsis/include",
|
".cmsis/include",
|
||||||
"project/MDK_V5/RTE/_BC2D",
|
"project/MDK_V5/RTE/_BC2D",
|
||||||
".eide/deps",
|
|
||||||
"3rd-part/dwt_delay",
|
"3rd-part/dwt_delay",
|
||||||
"3rd-part/PID-Library",
|
"3rd-part/PID-Library",
|
||||||
"app",
|
"app",
|
||||||
"3rd-part/lwprintf"
|
"3rd-part/lwprintf"
|
||||||
],
|
],
|
||||||
"libList": [],
|
"libList": [],
|
||||||
"sourceDirList": [],
|
|
||||||
"defineList": [
|
"defineList": [
|
||||||
"AT32F413CBT7",
|
"AT32F413CBT7",
|
||||||
"USE_STDPERIPH_DRIVER"
|
"USE_STDPERIPH_DRIVER"
|
||||||
@@ -147,5 +144,5 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "3.3"
|
"version": "3.4"
|
||||||
}
|
}
|
||||||
@@ -54,12 +54,18 @@
|
|||||||
<ModeSub name="Multi-Channels" value="Encoder_Mode"/>
|
<ModeSub name="Multi-Channels" value="Encoder_Mode"/>
|
||||||
<ModeSub name="Activated" value="TRUE"/>
|
<ModeSub name="Activated" value="TRUE"/>
|
||||||
</Mode>
|
</Mode>
|
||||||
|
<Parameters>
|
||||||
|
<ParametersSub name="EncoderMode" value="TMR_ENCODER_MODE_C"/>
|
||||||
|
</Parameters>
|
||||||
</TMR2>
|
</TMR2>
|
||||||
<TMR3>
|
<TMR3>
|
||||||
<Mode>
|
<Mode>
|
||||||
<ModeSub name="Multi-Channels" value="Encoder_Mode"/>
|
<ModeSub name="Multi-Channels" value="Encoder_Mode"/>
|
||||||
<ModeSub name="Activated" value="TRUE"/>
|
<ModeSub name="Activated" value="TRUE"/>
|
||||||
</Mode>
|
</Mode>
|
||||||
|
<Parameters>
|
||||||
|
<ParametersSub name="EncoderMode" value="TMR_ENCODER_MODE_C"/>
|
||||||
|
</Parameters>
|
||||||
</TMR3>
|
</TMR3>
|
||||||
<TMR4>
|
<TMR4>
|
||||||
<Mode>
|
<Mode>
|
||||||
@@ -135,7 +141,7 @@
|
|||||||
</PINInfo>
|
</PINInfo>
|
||||||
<ProjectInfomation>
|
<ProjectInfomation>
|
||||||
<ProjectName>BC2D</ProjectName>
|
<ProjectName>BC2D</ProjectName>
|
||||||
<ProjectLocation>C:/Users/ForgotDoge/Desktop/BC2024/firmware</ProjectLocation>
|
<ProjectLocation>/home/evan/Desktop/Workplace</ProjectLocation>
|
||||||
<ToolchainIDE>MDK_V5</ToolchainIDE>
|
<ToolchainIDE>MDK_V5</ToolchainIDE>
|
||||||
<KeepUserCode>true</KeepUserCode>
|
<KeepUserCode>true</KeepUserCode>
|
||||||
<MinHeapSize>0x200</MinHeapSize>
|
<MinHeapSize>0x200</MinHeapSize>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ int16_t by_motion_get_speed_m1(void)
|
|||||||
#define alpha (0.1f)
|
#define alpha (0.1f)
|
||||||
static float last_speed = 0.0f;
|
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));
|
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);
|
tmr_counter_value_set(TMR2, 0);
|
||||||
return (int16_t)param_m1.real_speed;
|
return (int16_t)param_m1.real_speed;
|
||||||
#undef alpha
|
#undef alpha
|
||||||
@@ -48,7 +48,7 @@ int16_t by_motion_get_speed_m2(void)
|
|||||||
#define alpha (0.1f)
|
#define alpha (0.1f)
|
||||||
static float last_speed = 0.0f;
|
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));
|
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);
|
tmr_counter_value_set(TMR3, 0);
|
||||||
return (int16_t)param_m2.real_speed;
|
return (int16_t)param_m2.real_speed;
|
||||||
#undef alpha
|
#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)
|
#if defined(BC2D_MODEL1)
|
||||||
int16_t speed_m1_temp = (int16_t)(data[0] | (data[1] << 8));
|
int16_t speed_m1_temp = (int16_t)(data[0] | (data[1] << 8));
|
||||||
int16_t speed_m2_temp = (int16_t)(data[2] | (data[3] << 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_m1(speed_m1_temp * 2);
|
||||||
by_motion_set_speed_m2(speed_m2_temp);
|
by_motion_set_speed_m2(speed_m2_temp * 2);
|
||||||
#elif defined(BC2D_MODEL2)
|
#elif defined(BC2D_MODEL2)
|
||||||
int16_t speed_m1_temp = (int16_t)(data[4] | (data[5] << 8));
|
int16_t speed_m1_temp = (int16_t)(data[4] | (data[5] << 8));
|
||||||
int16_t speed_m2_temp = (int16_t)(data[6] | (data[7] << 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_m1(speed_m1_temp * 2);
|
||||||
by_motion_set_speed_m2(speed_m2_temp);
|
by_motion_set_speed_m2(speed_m2_temp * 2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,6 +55,65 @@ extern "C" {
|
|||||||
|
|
||||||
/* add user code end exported macro */
|
/* 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 ------------------------------------------------------- */
|
/* exported functions ------------------------------------------------------- */
|
||||||
/* system clock config. */
|
/* system clock config. */
|
||||||
void wk_system_clock_config(void);
|
void wk_system_clock_config(void);
|
||||||
|
|||||||
@@ -470,7 +470,7 @@ void wk_tmr2_init(void)
|
|||||||
tmr_input_struct.input_filter_value = 0;
|
tmr_input_struct.input_filter_value = 0;
|
||||||
tmr_input_channel_init(TMR2, &tmr_input_struct, TMR_CHANNEL_INPUT_DIV_1);
|
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);
|
tmr_counter_enable(TMR2, TRUE);
|
||||||
|
|
||||||
@@ -538,7 +538,7 @@ void wk_tmr3_init(void)
|
|||||||
tmr_input_struct.input_filter_value = 0;
|
tmr_input_struct.input_filter_value = 0;
|
||||||
tmr_input_channel_init(TMR3, &tmr_input_struct, TMR_CHANNEL_INPUT_DIV_1);
|
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);
|
tmr_counter_enable(TMR3, TRUE);
|
||||||
|
|
||||||
|
|||||||
@@ -68,10 +68,10 @@
|
|||||||
/* add user code end 0 */
|
/* add user code end 0 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief main function.
|
* @brief main function.
|
||||||
* @param none
|
* @param none
|
||||||
* @retval none
|
* @retval none
|
||||||
*/
|
*/
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
/* add user code begin 1 */
|
/* add user code begin 1 */
|
||||||
@@ -124,8 +124,11 @@ int main(void)
|
|||||||
LOGI("init done");
|
LOGI("init done");
|
||||||
/* add user code end 2 */
|
/* add user code end 2 */
|
||||||
|
|
||||||
while (1) {
|
while(1)
|
||||||
|
{
|
||||||
/* add user code begin 3 */
|
/* 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 */
|
/* add user code end 3 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user