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 + -
显示快捷键?