fix: SW4 快速模式 — 离开和脉冲延时均缩短为500ms
- TaskLoop.h: 新增 OUT_DELAY_FAST=10, PULSE_DELAY_FAST=10 - TaskLoop.h: SET_DLY 注释从"延时"改为"快速模式" - TaskLoop.c: FLAG_OUT 不再跳过延时,改为 OUT_DELAY_FAST 计数 - TaskLoop.c: FLAG_PLUSE 改用 PULSE_DELAY_FAST 计数 - 旧行为: SET_DLY=1 时 FLAG_OUT 立即跳到 FLAG_PLUSE - 新行为: SET_DLY=1 时两者均用 10 tick (500ms) 快速延迟
This commit is contained in:
@@ -26,6 +26,10 @@
|
||||
#define OUT_DELAY 38 // 离开防抖 1.9s
|
||||
#define PULSE_DELAY 19 // 脉冲宽度 950ms
|
||||
|
||||
/* SW_4 快速模式:缩短离开防抖和脉冲宽度为 500ms */
|
||||
#define OUT_DELAY_FAST 10 // 离开防抖快速 500ms
|
||||
#define PULSE_DELAY_FAST 10 // 脉冲宽度快速 500ms
|
||||
|
||||
/*===========================================================================
|
||||
* 滤波参数 — 对齐 M1H
|
||||
*===========================================================================*/
|
||||
@@ -115,7 +119,7 @@ extern uint8_t TM1cnt; // 50ms tick 分频计数
|
||||
* 拨码开关状态
|
||||
*===========================================================================*/
|
||||
extern uint8_t SET_PLUS; // 0=存在输出, 1=脉冲输出
|
||||
extern uint8_t SET_DLY; // 0=无延时, 1=延时
|
||||
extern uint8_t SET_DLY; // 0=正常, 1=快速模式(500ms)
|
||||
extern uint8_t SET_SAFE; // 1=安全复位拨下
|
||||
|
||||
/*===========================================================================
|
||||
|
||||
@@ -76,7 +76,7 @@ uint8_t TM1cnt = 0;
|
||||
* 拨码开关状态
|
||||
*===========================================================================*/
|
||||
uint8_t SET_PLUS = 0;
|
||||
uint8_t SET_DLY = 0;
|
||||
uint8_t SET_DLY = 0; // 0=正常, 1=快速模式(500ms)
|
||||
uint8_t SET_SAFE = 0;
|
||||
|
||||
/*===========================================================================
|
||||
@@ -508,27 +508,22 @@ void TMR15_GLOBAL_IRQHandler(void)
|
||||
}
|
||||
}
|
||||
|
||||
/* FLAG_OUT: 离开延时 1.9s(或 SET_DLY 时立即脉冲) */
|
||||
/* FLAG_OUT: 离开延时(正常 1.9s,快速模式 500ms) */
|
||||
if (loop1_FLAG_OUT) {
|
||||
if (SET_DLY) {
|
||||
/* 延时模式:立即触发脉冲 */
|
||||
loop1_FLAG_OUT = 0;
|
||||
loop1_FLAG_PLUSE = 1;
|
||||
loop1_OUTCNT = 0;
|
||||
} else {
|
||||
uint16_t out_delay = SET_DLY ? OUT_DELAY_FAST : OUT_DELAY;
|
||||
loop1_OUTCNT++;
|
||||
if (loop1_OUTCNT > OUT_DELAY) {
|
||||
if (loop1_OUTCNT > out_delay) {
|
||||
loop1_FLAG_OUT = 0;
|
||||
loop1_FLAG_PLUSE = 1;
|
||||
loop1_OUTCNT = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* FLAG_PLUSE: 脉冲宽度 950ms */
|
||||
/* FLAG_PLUSE: 脉冲宽度(正常 950ms,快速模式 500ms) */
|
||||
if (loop1_FLAG_PLUSE) {
|
||||
uint16_t pulse_delay = SET_DLY ? PULSE_DELAY_FAST : PULSE_DELAY;
|
||||
loop1_OUTCNT++;
|
||||
if (loop1_OUTCNT > PULSE_DELAY) {
|
||||
if (loop1_OUTCNT > pulse_delay) {
|
||||
loop1_FLAG_PLUSE = 0;
|
||||
loop1_OUTCNT = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user