📄 frigwndw.c
字号:
n_DispMode = DFANSET;
n_DispTime = TIM5S;
n_LEDDisp[0] &= ~(1<<LEDAUTO | 1<<LEDSLOW);
n_LEDDisp[0] |= 1<<LEDFAST;
break;
case BTNAUTO:
if((!b_ModeFan) && (!b_AutoFan)){
n_Fan1MinCnt = 0;
b_AutoFan = TRUE;
n_SysBack10S = TIM10S;
}
break;
case BTNCHECK:
if(n_SysBack[5] >= TIM250H){
n_SysBack[5] = 0;
n_SysBack[3] &= ~0x80;
n_Fan30Min = TIM30MIN;
n_SysBack10S = TIM10S;
}
break;
case BTNPWRSAV:
// b_ModeSleep = FALSE;
b_ModeCool = FALSE;
b_ModeFan = FALSE;
if(!b_ModePwrSav){
b_ModePwrSav = TRUE;
b_FanCycle = 0;
n_FanCycleCnt = TIM10MIN;
n_Comp5Min = 0;
n_SysBack10S = TIM10S;
}
n_DispMode = DTEMPSET;
n_DispTime = TIM5S;
b_TimerTempA = TRUE;
TempD2S();
break;
case BTNFAN:
if(b_IFeel) break;
b_ModeSleep = FALSE;
b_ModePwrSav = FALSE;
b_ModeCool = FALSE;
if(!b_ModeFan){
b_ModeFan = TRUE;
n_TempDisp2S = 0;
if(b_AutoFan){ b_AutoFan = FALSE; n_FanSpeed = FANLOW;}
n_SysBack10S = TIM10S;
}
TempD2S();
break;
case BTNSLEEP:
if(b_ModeCool || b_ModePwrSav){
b_ModeSleep ^= 1;
TempD2S();
n_Comp5Min = 0;
n_SysBack10S = TIM10S;
}
break;
case BTNPLUS:
b_FiltOut ^= 1;
n_SysBack10S = TIM10S;
break;
case BTNIFON:
if(!b_ModeFan){
b_IFeel = 1;
if(!n_LEDIFDelay) LEDIFStart();
else n_LEDIFDelay = TIMD2S5;
}
n_IFeelTime = TIM200S;
break;
default:
break;
}
}
n_KeyInput = 0x0ff;
if(b_TempSetChg){
b_TempSetChg = FALSE;
n_Comp1Min = 1;
n_Comp5Min = 0;
n_Fan30SCnt = 0;
TempD2S();
n_SysBack10S = TIM10S;
}
if(!n_DispTime || !b_RunTimer || !b_Runing || b_ModeFan) b_TimerTempA = FALSE;
if(!b_RunTimer) n_DispMode &= ~DTIMESET;
}
void FanOut()
{
if(b_Runing){
if(b_ModeFan || b_ModeCool || b_TestRun) b_FanOut = 1;
else if(b_ModePwrSav){
if(b_Defrost){
b_FanOut = 1;
b_FanCycle = 1;
n_FanCycleCnt = TIM2MIN;
}
else if(b_CompOut || n_Comp3Min) b_FanOut = 1;
else b_FanOut = b_FanCycle;
}
else b_FanOut = 0;
}
else b_FanOut = 0;
if(b_FanOut) n_FanStop3S = TIM3S;
if(!n_FanStop3S) n_FanFst035S = TIM350MS;
if(b_CompOut){ n_FanCycleCnt = TIM10MIN; b_FanCycle = 0;}
}
void CompOut()
{
if(!b_Runing || b_ModeFan) b_CompOut = 0;
else{
if(b_Bypass) b_CompOut = 1;
else{
if(((!n_Comp1Min) || b_Defrost)){
if(!n_Comp5Min){
b_CompOut = 0;
if(b_ModePwrSav) n_Fan30SCnt = TIM30S;
}
}
else{
n_GenBuf = n_TempSet + TEMP0F5;
if((n_ADData[0] >= n_GenBuf) || b_ErrT1Sensor){
if(!n_Comp3Min) b_CompOut = 1;
}
}
}
}
if(!b_ModePwrSav) n_Fan30SCnt = 0;
if(b_CompOut){
if(!n_Fan30SCnt){
if(!b_CompPort){ n_VolAdj5S = TIM60S; n_CompWaitCnt = MAXWAIT;}
b_CompPort = 1;
n_Comp3Min = TIM3MIN;
}
}
else{
if(b_CompPort){ n_VolAdj5S = TIM60S; n_CompWaitCnt = MAXWAIT;}
b_CompPort = 0;
n_Comp5Min = TIM5MIN;
}
}
void FiltOut()
{
if(b_FiltOut && b_Runing && b_FanOut){
if(!PIO_FiltPlus) n_VolAdj5S = TIM60S;
PIO_FiltPlus = 1;
}
else{
if(PIO_FiltPlus) n_VolAdj5S = TIM60S;
PIO_FiltPlus = 0;
}
}
void LEDIFStart()
{
n_LEDIFDelay = TIMD5S;
// n_LEDIFLight = 0;
n_LEDIFFlash = 0;
}
void Defrost()
{
if(b_Runing){
if(n_Frost1S > TIM2S5) b_Defrost = 1;
if(n_Defrost1S > TIM2S5) b_Defrost = 0;
if(b_T2Open) b_Defrost = 0;
}
else b_Defrost = 0;
}
void GetIFTemp()
{
#asm
mov a, _n_RTLast+3
mov x, #0
mov c, #7
?LGetIFTp00:
ror a, 1
bnc $?LGetIFTp01
inc x
?LGetIFTp01:
dbnz c, $?LGetIFTp00
xor a, x
bf a.0, $?LGetIFTp02
mov a, _n_RTLast+3
clr1 a.7
add a, #100
mov _n_IFTemp, a
ret
?LGetIFTp02:
mov _n_KeyInput, #0ffh
ret
#endasm
}
void IFTempProc()
{
if(!b_IFeel) return;
b_ErrT1Sensor = 0;
if(b_Runing && (!b_ModeFan)) n_ADData[0] = n_IFTemp;
}
void FanVolAdj()
{
if(n_SysData[4] & 0x01) { n_FanSelAdj = 5; return;}
#asm
mov a, _n_ADData+2
sub a, _n_VolLast
bnc $?LFanVolAdj01
xor a, #0ffh
inc a
?LFanVolAdj01:
cmp a, #2
bnc $?LFanVolAdj02
ret
?LFanVolAdj02:
#endasm
if(b_CompPort) n_GenBuf = (PIO_FiltPlus)? 3:2;
else n_GenBuf = (PIO_FiltPlus)? 1:0;
#asm
; 保留本次调节的电源电压值
mov a, _n_ADData+2
mov _n_VolLast, a
; 计算当前的额定电压标准值
movw hl, #_TBL_PwrAdjTrig
mov c, #0
mov b, #18-1
movw ax, _n_TrigDelay
addw ax, #550
?LFanVolAdj03:
cmp a, [hl+1]
bc $?LFanVolAdj08
bnz $?LFanVolAdj04
xch a, x
cmp a, [hl]
xch a, x
bc $?LFanVolAdj08
?LFanVolAdj04:
cmp _n_GenBuf, #0
bz $?LFanVolAdj06
mov a, _n_GenBuf
mov b, a
movw ax, #_TBL_PwrVolAdj
?LFanVolAdj05:
addw ax, #18
dbnz b, $?LFanVolAdj05
br $?LFanVolAdj07
?LFanVolAdj06:
movw ax, #_TBL_PwrVolAdj
?LFanVolAdj07:
xch a, x
add a, c
xch a, x
addc a, #0
movw hl, ax
mov a, [hl]
mov c, a
mov a, _n_GenBuf
mov x, a
xor a, a
addw ax, #_n_SysData
movw hl, ax
mov a, [hl]
sub a, c
br $?LFanVolAdj10
?LFanVolAdj08:
inc c
incw hl
incw hl
dbnz b, $?LFanVolAdj03
br $?LFanVolAdj04
?LFanVolAdj10:
mov c, a
movw ax, #_TBL_FanSelAdj
?LFanVolAdj11:
cmp _n_GenBuf, #0
bz $?LFanVolAdj12
addw ax, #13
dec _n_GenBuf
br $?LFanVolAdj11
?LFanVolAdj12:
movw hl, ax
mov a, c
add a, #20 ; shift the adj. value by 5
bnc $?LFanVolAdj13
mov a, #0ffh
?LFanVolAdj13:
mov x, #0
sub a, _n_ADData+2
bc $?LFanVolAdj15
mov c, #13
?LFanVolAdj14:
cmp a, [hl]
bc $?LFanVolAdj15
incw hl
inc x
dbnz c, $?LFanVolAdj14
?LFanVolAdj15:
mov a, x
mov _n_FanSelAdj, a
#endasm
}
void FanSpeed()
{
if(b_TestRun){
if(!n_TestStep1S) n_FanSpeed = FANLOW;
else n_FanSpeed = FANHIGH;
}
else if(b_AutoFan){
n_GenBuf = n_TempSet + TEMP2F5;
if(n_ADData[0] >= n_GenBuf){
if(n_FanSpeed == FANMID){
if(!n_Fan1MinCnt){ n_FanSpeed = FANHIGH; n_Fan1MinCnt = TIM1MIN;}
}
else if(n_FanSpeed != FANHIGH){ n_FanSpeed = FANMID; n_Fan1MinCnt = TIM1MIN;}
}
else{
n_GenBuf = n_TempSet - TEMPN1F;
if(n_ADData[0] <= n_GenBuf){
if(!n_Fan1MinCnt) n_FanSpeed = FANLOW;
}
else{
if((n_ADData[0] <= n_TempSet) && (n_FanSpeed == FANHIGH) && (!n_Fan1MinCnt)){
n_FanSpeed = FANMID;
n_Fan1MinCnt = TIM1MIN;
}
}
if((n_FanSpeed != FANMID) && (n_FanSpeed != FANHIGH)) { n_FanSpeed = FANLOW; n_Fan1MinCnt = 0;}
}
}
n_TrigDurat = TRIGWIDE;
if(n_FanFst035S){ n_TrigDelay = TRIGFAST; return;}
#asm
mov a, _n_FanSel
cmp _n_FanSelAdj, #5
bnc $?LFanSpeed00
mov _n_GenBuf, a
add a, _n_FanSelAdj
add _n_GenBuf, #5
br $?LFanSpeed02
?LFanSpeed00:
add a, _n_FanSelAdj
cmp a, #27
bc $?LFanSpeed01
mov a, #27-1
?LFanSpeed01:
mov _n_GenBuf, a
?LFanSpeed02:
rol a, 1
mov x, a
xor a, a
addw ax, #_TBL_TrigD
movw hl, ax
mov a, [hl+1]
mov x, a
mov a, [hl]
movw bc, ax
movw ax, #_TBL_Trig
?LFanSpeed03:
cmp _n_GenBuf, #0
bz $?LFanSpeed04
addw ax, #18
dec _n_GenBuf
br $?LFanSpeed03
?LFanSpeed04:
movw hl, ax
mov a, _n_FanSpeed
sub a, #10 ; FANLOW
mov _n_GenBuf, a
movw ax, bc
mov c, #5
?LFanSpeed05:
cmp _n_GenBuf, #0
bz $?LFanSpeed08
sub a, [hl]
bnc $?LFanSpeed06
dec x
?LFanSpeed06:
dbnz c, $?LFanSpeed07
incw hl
mov c, #5
?LFanSpeed07:
dec _n_GenBuf
br $?LFanSpeed05
?LFanSpeed08:
xch a, x
subw ax, #550 ; death of zerocross
movw _n_TrigDelay, ax
#endasm
if(n_TrigDelay > TRIGW2N) n_TrigDurat = TRIGNARROW;
}
// 按键代码
static const unsigned char TBL_Button[]=
{
// No.1 No.2 No.3 No.4 No.5 No.6 No.7 No.8
BTNDOWN, BTNUP, BTNSLOW, BTNFAST, BTNNODEF, BTNMODE, BTNAUTO, BTNSLEEP,
// No.9 No.10 No.11 No.12 No.13 No.14 No.15 No.16
BTNPLUS, BTNTIMER, BTNCHECK, BTNPWR, BTNSEL1, BTNSEL2, BTNSEL3, BTNSEL4
};
static const unsigned char TBL_FanSelAdj[4][]=
{
// 最多下调5档,上调8档,共13档。中心偏移值 20 <-> 0(5)
// -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 +7 +8
{
0, 4, 9, 13, 18, 23, 28, 32, 37, 41, 46, 50, 55
},
{
1, 5, 10, 14, 18, 23, 27, 32, 36, 40, 45, 49, 53
},
{
3, 7, 11, 15, 19, 22, 26, 30, 34, 38, 42, 46, 49
},
{
5, 8, 12, 15, 19, 22, 26, 29, 33, 36, 40, 43, 46
},
};
static const unsigned char TBL_PwrVolAdj[4][]=
{
{
0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 6, 5, 4
}, // all off
{
0, 0, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 4, 4
}, // flz on
{
0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2
}, // comp on
{
0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1
}, // all on
};
static const unsigned TBL_PwrAdjTrig[]=
{
/*4530,*/ 4420, 4310, 4190, 4070, 3950, 3830, 3700, 3560, 3420, 3270, 3110, 2940, 2750, 2540, 2290, 2000, 1600, 780,
};
/*
static const unsigned char TBL_LEDBright[]=
{
0x00, 0x10, 0x40, 0xa4, 0xaa, 0xb5, 0xbb, 0xef, 0xff,
0xff, 0xef, 0xbb, 0xb5, 0xaa, 0xa4, 0x40, 0x10, 0x00, 0x00
};
*/
static const unsigned TBL_LEDBright[]=
{
0x0000, 0x0000, 0x0100, 0x1010, 0x4208, 0x8888, 0x9124, 0x924a, 0xa4a9,
0x5555, 0xab55, 0xadb6, 0x6db6, 0xedb6, 0x7777, 0xfbfb, 0xff7f, 0xffff,
0xffff, 0xff7f, 0xfbfb, 0x7777, 0xedb6, 0x6db6, 0xadb6, 0xab55, 0x5555,
0xa4a9, 0x924a, 0x9124, 0x8888, 0x4208, 0x1010, 0x0100, 0x0000, 0x0000
};
static const unsigned TBL_TrigD[]=
{
/*5161, 5074, */4986, 4897, 4805,
4714, 4621, 4527, 4431, 4334, 4234, 4132, 4027, 3920, 3808, 3693, 3573, 3449, 3319, 3180, 3034,
2876, 2702, 2512, 2294, 2018, 1690, 1167, 700
};
static const unsigned char TBL_Trig[27][]=
{
/* {
27, 27, 28, 29, 29, 29, 31, 32, 33, 35, 38, 40, 43, 48, 56, 67, 91,195
}, // 60V
{
26, 27, 27, 28, 29, 29, 30, 31, 33, 34, 37, 39, 42, 48, 55, 66, 89,191
}, // 62V
*/
{
25, 26, 26, 27, 28, 28, 30, 30, 32, 34, 36, 38, 42, 47, 53, 65, 88,187
}, // 64V
{
25, 25, 25, 26, 27, 28, 29, 30, 31, 33, 35, 38, 41, 46, 52, 64, 86,183
}, // 66V
{
24, 24, 25, 26, 26, 27, 28, 29, 31, 32, 35, 36, 41, 45, 51, 63, 85,178
}, // 68V
{
23, 23, 25, 25, 25, 26, 28, 28, 30, 32, 33, 36, 40, 44, 51, 61, 83,174
}, // 70V
{
23, 23, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 38, 44, 49, 61, 81,169
}, // 72V
// ↓SEL = 0 (OFF OFF OFF OFF)
{
22, 22, 23, 24, 24, 25, 26, 27, 28, 31, 32, 34, 38, 42, 49, 59, 80,164
}, // 74V
{
21, 22, 22, 23, 24, 24, 25, 27, 28, 29, 31, 34, 37, 41, 48, 58, 78,159
}, // 76V
{
21, 21, 21, 22, 23, 24, 24, 26, 27, 29, 30, 33, 36, 41, 46, 56, 77,154
}, // 78V
{
20, 20, 21, 22, 22, 23, 24, 25, 26, 28, 29, 33, 35, 39, 45, 56, 74,149
}, // 80V
{
19, 20, 20, 20, 22, 22, 23, 25, 25, 27, 29, 31, 35, 38, 44, 54, 72,144
}, // 82V
{
18, 19, 20, 20, 21, 21, 23, 23, 25, 26, 28, 30, 34, 37, 43, 52, 71,138
}, // 84V
{
17, 18, 19, 20, 20, 21, 21, 23, 24, 25, 28, 29, 32, 37, 41, 51, 68,133
}, // 86V
{
17, 18, 18, 18, 20, 20, 21, 22, 23, 24, 27, 28, 32, 35, 40, 49, 66,127
}, // 88V
{
16, 17, 18, 18, 18, 19, 21, 21, 22, 24, 25, 28, 30, 34, 39, 48, 64,120
}, // 90V
{
16, 16, 17, 17, 18, 18, 20, 20, 21, 23, 25, 26, 29, 33, 38, 46, 61,114
}, // 92V
{
15, 15, 16, 17, 17, 18, 18, 20, 20, 22, 24, 25, 28, 32, 36, 44, 59,107
}, // 94V
{
14, 15, 15, 16, 16, 17, 18, 19, 19, 21, 23, 24, 27, 30, 35, 42, 56,100
}, // 96V
{
14, 14, 14, 15, 15, 16, 17, 18, 19, 20, 21, 23, 26, 28, 33, 40, 53, 93
}, // 98V
{
12, 13, 14, 14, 15, 15, 16, 16, 18, 19, 20, 22, 24, 28, 31, 37, 50, 85
}, // 100V
{
11, 12, 13, 13, 14, 14, 15, 16, 17, 17, 19, 21, 23, 25, 29, 35, 47, 76
}, // 102V
{
11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 18, 19, 21, 24, 27, 32, 43, 67
}, // 104V
// ↑ SEL = 15 (ON ON ON ON)
{
10, 10, 11, 11, 11, 12, 13, 13, 14, 15, 17, 17, 19, 22, 24, 30, 37, 58
}, // 106V
{
9, 9, 10, 10, 10, 11, 11, 12, 13, 13, 15, 15, 17, 19, 22, 26, 32, 47
}, // 108V
{
7, 8, 8, 9, 9, 9, 9, 10, 11, 12, 12, 13, 15, 16, 18, 21, 26, 35
},
{
6, 6, 6, 7, 7, 7, 7, 8, 8, 9, 10, 10, 11, 12, 13, 15, 17, 22
},
{
3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
};
// THE END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -