task.lst
来自「CS8955控制TV软件。用MCU做模拟电视的控制。」· LST 代码 · 共 363 行 · 第 1/2 页
LST
363 行
167 2 }
168 2 */
169 2 /*
170 2 if(ShadowDvdInfo[0] == 0x8b)
171 2 _bIRKey0=IR_AUTO_SCAN;
172 2 else if(ShadowDvdInfo[0] == 0x82)
173 2 _bIRKey0=IR_FINE_UP;
174 2 else if(ShadowDvdInfo[0] == 0x83)
175 2 _bIRKey0=IR_FINE_DOWN;
176 2 else if(ShadowDvdInfo[0] == 0x84)
C51 COMPILER V8.05a TASK 07/03/2008 18:27:38 PAGE 4
177 2 _bIRKey0=IR_MANUAL_UP;
178 2 else if(ShadowDvdInfo[0] == 0x85)
179 2 _bIRKey0=IR_MANUAL_DOWN;
180 2 else if(ShadowDvdInfo[0] == 0x8c)
181 2 _bIRKey0=IR_SYNC_INFO;
182 2 else if(ShadowDvdInfo[0] == 0x8d)
183 2 _bIRKey0=IR_STOP;
184 2 else */
185 2 /* if(ShadowDvdInfo[0] == 0x8e)
186 2 _bIRKey0=IR_TV_SOUND;
187 2 else */
188 2
189 2 if(ShadowDvdInfo[0] == 0x8d)
190 2 _bIRKey0=IR_STOP;
191 2 else
192 2 _bIRKey0=ShadowDvdInfo[0];
193 2 ShadowDvdInfo[0]=0xff;
194 2 }
195 1 #endif
196 1 if(bTempIrKey!= 0xff)
197 1 {
198 2 // _bIRKey0=bTempIrKey;
199 2 // bTempIrKey=0x00;
200 2 }
201 1 // _bIRKey0=0x81;
202 1 // ShadowDvdInfo[5] = 0x02; //02Jun08 test
203 1
204 1
205 1 #ifndef MARTIN_MCU_NO_IR //martin 08May08 disable IR
if(fgLongOrShortKey)
{
if(_bRemoteTimer<=5)
{
fgLongOrShortKey = 0;
if(LongPushCount>10)
_bIRKey0 = Key2IR(1,_bIRLongPush);
else
_bIRKey0 = Key2IR(0,_bIRLongPush);
LongPushCount = 0;
_fgIRKeyValid = TRUE;
}
}
#endif
220 1 // key process
221 1 //02Jun08 if (_bIRKey0!=IR_NONE)
222 1 if ((_bIRKey0!=IR_NONE)||(bTempIrKey!=IR_NONE))
223 1 {
224 2 // btesttvIf=_bIRKey0;
225 2 KeyProcess();
226 2 }
227 1 #ifndef MARTIN_SYSTEM_ONLY_TVMODE //martin 08May08
// switching modes
bTemp = (DvdRxBuf[DVD_STATUS_BYTE]&0x0f);
if (bTemp!=PWR_DOWN_MODE)
NextSysMode = bTemp;
if (NextSysMode!=SysMode && bTemp==NextSysMode)
{
SysMode = NextSysMode;
vSysModeSwitch(SysMode);
}
#endif
238 1 // prepare mcu cmd
C51 COMPILER V8.05a TASK 07/03/2008 18:27:38 PAGE 5
239 1 #if 0
if (bRadioScanMem && CarMCUCmd==0)
{
CarMCUCmd = 0xa8;
DvdRxBuf[COMDVD_BYTE-1] = 0;
}
#endif // 0
246 1 // TVRaCurrDataOut();
247 1 #ifndef MARTIN_MODIFY_UPDATE_DATA //06Jun08
// mcu data out : 1. mcu cmd and 2. current channels/current band info for tv/radio
#ifdef MARTIN_SYSTEM_ONLY_TVMODE
if ((!DataOutValid)&&(bDataUpdateEn == 0x00)/*&&(!IE1)*/) //martin 08May08
#else
if (!DataOutValid && (SysMode==TV_MODE || CarMCUCmd>0xa0))
#endif
{
for (i=0;i<COMDVD_BYTE;i++) //for (i=0;i<9;i++) martin 08May08
DataOut[i] = 0;
#ifndef MARTIN_DVD_COMM_NOT_SUPPORT_INT
EX1 = 0;
#endif
chksum = 0;
#ifdef MARTIN_SYSTEM_ONLY_TVMODE
DataOut[2] = bTvTotalCh; //martin 08May08
#else
DataOut[2] = NextSysMode;
#endif
// DataOut[1] = 0xff;
// for tv/radio, send current channels, current band info
TVRaCurrDataOut();
#ifndef MARTIN_MCU_AND_DVD_PROTOCOL
// send mcu cmd data out
McuCmdDataOut();
#endif
for (i=1;i<COMDVD_BYTE;i++)
chksum += DataOut[i];
DataOut[0] = chksum;
++DataOutValid;
#ifndef MARTIN_DVD_COMM_NOT_SUPPORT_INT
EX1 = 1;
#endif
}
#endif
284 1 // MCU cmd ack waiting
285 1 if (CarMCUCmd)
286 1 {
287 2 ++CarMCUCmdCount;
288 2 switch (CarMCUCmd)
289 2 {
290 3 // radio station memory
291 3 #if 0
case 0xa8:
if (CarMCUCmdCount>=20 || (DvdRxBuf[COMDVD_BYTE-1]==CarMCUCmd))
{
bTvScanMem = 0;
CarMCUCmd = CarMCUCmdCount = 0;
}
break;
#endif
300 3 default: break;
C51 COMPILER V8.05a TASK 07/03/2008 18:27:38 PAGE 6
301 3 }
302 2 }
303 1 #ifndef MARTIN_SYSTEM_ONLY_TVMODE //09May08
// power down
if ((SysMode!=PWR_DOWN_MODE) && (DvdRxBuf[1]==0x3f))
{
PowerDownSaveToE2prom();
EA = 0; //disable all interrupt
// power down
#ifndef MARTIN_SYSTEM_ONLY_TVMODE
vInitSysPwr(OFF);
#endif
// power down mode
vInitCPU(OFF);
TR0=1; // start timer0
EX0 = 1;
EX1 = 0;
ES = 0;
EA = 1; //enable all interrupt
SysMode = NextSysMode = PWR_DOWN_MODE;
return;
}
#endif
325 1 }
326
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 235 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?