perf: 提高测量精度和响应速度

- TIM3 分频 DIV_4→DIV_2(中断率×2,CPU仍<3%)
- 去掉 XNSUM_FOR_ORIGIN_FACTOR (>>6),保留全部采样精度
- LPCNT = MEASUREMENT_BASE(131072)/Xn,替代 (32768<<6)/Xn
- 测量窗口 17.5ms→~1ms(快16倍)
- Origin 范围 32K→131K,灵敏度阈值自动按比例缩放
- 离开增加 cnt_release>=3 防抖,防瞬间噪声误落杆
This commit is contained in:
wangfq
2026-06-23 11:02:12 +08:00
parent 95bf13a5ef
commit eff59c9ba9
3 changed files with 43 additions and 30 deletions

View File

@@ -236,7 +236,7 @@ void loop_timer_io_init(void)
g_tmr_input_config_struct.input_channel_select = TMR_SELECT_CHANNEL_2;
g_tmr_input_config_struct.input_mapped_select = TMR_CC_CHANNEL_MAPPED_DIRECT;
g_tmr_input_config_struct.input_polarity_select = TMR_INPUT_RISING_EDGE;
_div = TMR_CHANNEL_INPUT_DIV_4;
_div = TMR_CHANNEL_INPUT_DIV_2;
tmr_input_channel_init(TMR3, &g_tmr_input_config_struct, _div);
for(i = 0; i< _div; i++){
g_input_div *= 2;