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:
@@ -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) {
|
||||
/* 延时模式:立即触发脉冲 */
|
||||
uint16_t out_delay = SET_DLY ? OUT_DELAY_FAST : OUT_DELAY;
|
||||
loop1_OUTCNT++;
|
||||
if (loop1_OUTCNT > out_delay) {
|
||||
loop1_FLAG_OUT = 0;
|
||||
loop1_FLAG_PLUSE = 1;
|
||||
loop1_OUTCNT = 0;
|
||||
} else {
|
||||
loop1_OUTCNT++;
|
||||
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