⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.lst

📁 威望公司MP3 + USB MCU 的参考软件
💻 LST
📖 第 1 页 / 共 2 页
字号:
              
                      halLCMWriteData(24, 0,"NO DEVICE", 9);
                      //DispValue(32, 2, halFMGetFreq(), DISP_VALUE_FM);      
                      bCnt = _DispFMDec2ASCII();
                      //halLCMWriteData(32, 2, DispStr, bCnt);
                      //halLCMWriteData(32+(bCnt<<3), 2, "MH", 3);
                      halLCMWriteData(32, 2,"*[", 2);
                      halLCMWriteData(52, 2, DispStr, bCnt);
                      
                      return;
              }
              
              static void _halDispNormal()
              {
                      BYTE * bpName;
                      BYTE *bPtr = DispStr;
                      BYTE bCnt;
                      DRIVE *drv = DriveGet();
              
                      if(FSMState != FSMSTATE_INIT){
                              _halDispNoDev();
                              return;
                      }
              
                      if(mp3status==MP3STATUS_PAUSE){
                              halLCMWriteBig(16, "PAUSE", 5); 
                              return;
                      }
                      
                      //Display LFN
                      if(sbPos <= 0)  {
                                      bpName = drv->Name + (-sbPos);
                              if(((drv->LFNCnt) + sbPos)<=0)
                                      sbPos = 16;
              
                              halLCMWriteData(0, 2, bpName, 16);
                      }else{
                              bpName = drv->Name;
                              halLCMWriteData((sbPos<<3), 2, bpName, 16);
                      }       
                      sbPos --; //Go ahead
              
                      halMp3Req(fd_mp3);
              
                      //Display current mp3 time
                      bPtr = _DispDec2ASCII(bPtr, bgMP3TM);
                      *bPtr = ':';    bPtr++;
                      bPtr = _DispDec2ASCII(bPtr, bgMP3TS);   
                      bCnt = bPtr - DispStr;
                      halLCMWriteData(88, 0, DispStr, bCnt);
                      
                      halMp3Req(fd_mp3);
              
                      //Display device id
                      halLCMWriteData(0, 0, MemDev[drv->DevID], DISP_DEVID_MAXLEN);
              
                      //halMp3Req(fd_mp3);
C51 COMPILER V8.01   DISPLAY                                                               04/17/2008 09:54:53 PAGE 6   

                      
              #ifdef ENABLE_PLAYMODE_KEY
                      //Display repeat set
                      if(bPMode == MP3_PMODE_REPEAT1)
                              halLCMWriteData(52, 0, "R1", 2);
                      else
                              halLCMWriteData(52, 0, "RA", 2);
              #endif
              
                      //Display fm ch
                      bCnt = _DispFMDec2ASCII();
              #if 0   
                      halLCMWriteData(32, 0, DispStr, bCnt);
                      halLCMWriteData(32+(bCnt<<3), 0,"M", 1);
              #else
              //'*', ':'
                      halLCMWriteData(24, 0,"*[", 2);
                      halLCMWriteData(24+16, 0, DispStr, bCnt);
              #endif
              
                      halMp3Req(fd_mp3);
              
                      bgDispGap = 0;
              
                      return;
              }
              
              void DispReset(void)
              {
                      sbPos = 16;
              
                      bgMP3TMS = 0;
                      bgMP3TS = 0;
                      //bgMP3T10S = 0;
                      bgMP3TM = 0;    
              
                      return;
              }
              BYTE DispFMSCase(void)
              {
              //      BYTE *bPtr = DispStr;
              //      BYTE bCnt;
                      BYTE data bRet=FALSE;
              
                      _halDispGapChk();
              
                      // 1. Clear LCM, and display the STATUS, Large Font
                      if(bgDispStatusChg == TRUE){                                    
                              bgDispStatusChg = FALSE;
                              bRet=TRUE;
                      }
              
                      return bRet; //TRUE: Display, FALSE: No Display
              }
              static void _halDispIdx(void)
              {
                      BYTE *bPtr;
                      BYTE bCnt;
                      BYTE bColum;
                      
                      bPtr = _DispDec2ASCII(DispStr, Mp3SReq.swIdx);
                      *bPtr = '/';bPtr++;
C51 COMPILER V8.01   DISPLAY                                                               04/17/2008 09:54:53 PAGE 7   

                      bPtr = _DispDec2ASCII(bPtr, Mp3SReq.swTotalCnt);
              
                      bCnt = bPtr -DispStr; //The number CHAR
              
                      //Maybe we should set the display column according the cnt;
                      bColum = (128-(bCnt<<4))>>1;
                      halLCMWriteBig(bColum, DispStr, bCnt);
                      
                      return;
              }
              
              static void _halDispVol()
              {
                      BYTE *bPtr = DispStr;
                      BYTE bCnt;
              
                      halLCMWriteBig(8, "VOL ", 4);
                      bPtr = _DispDec2ASCII(bPtr, halVolGet());       
              
                      bCnt = bPtr -DispStr; //The number CHAR
              
                      //Maybe we should set the display column according the cnt;
                      halLCMWriteBig(64, DispStr, bCnt);      
                      
                      return;
              }
              
              static void _halDispFM()
              {
                      BYTE *bPtr = DispStr;
                      BYTE bCnt;
              
                      bCnt = _DispFMDec2ASCII();
              
                      //Maybe we should set the display column according the cnt;
                      halLCMWriteBig(16, DispStr, bCnt);      
                      halLCMWriteBig(16+(bCnt<<4), "MH", 3);  
                      
                      return;
              }
              
              static void _halDispJump()
              {
                      //DispValue(32, 0, halIRGetJump(), DISP_VALUE_NORBIG);
                      BYTE *bPtr = DispStr;
                      BYTE bCnt;
              
                      bPtr = _DispDec2ASCII(bPtr, halIRGetJump());
                      bCnt = bPtr - DispStr;
                      
                      halLCMWriteBig(16, DispStr, bCnt);      
              
                      return;
              }
              
              static void _halDispSimp()
              {
                      BYTE *bPtr;
                      
                      if(bgDispStatus == DISP_EQ_STATUS)
                              bPtr = EQString[halEQGet()];
                      else
C51 COMPILER V8.01   DISPLAY                                                               04/17/2008 09:54:53 PAGE 8   

                              bPtr = "ERROR";
                              
                      halLCMWriteBig(16, bPtr, 5); //EQ, PAUSE, ERROR
              
                      return;
              }
              
              static void _halDispCtrlDig()
              {
                      BYTE *bPtr = DispStr;
                      BYTE bCnt;
                      WORD wTmp = halIRGetJump();
              
                      if(irjumptype == IRJUMP_TYPE_PICKSONG){
                              halLCMWriteBig(0, "IDX", 3);    
                      }else{
                              halLCMWriteBig(0, "FM", 2);     
                      }
              
                      if(wTmp > 0){
                              bPtr = _DispDec2ASCII(bPtr, wTmp);
                              bCnt = bPtr - DispStr;
                              
                              halLCMWriteBig(56, DispStr, bCnt);
                      }       
              
                      return;
              }
              
              //The functions in this table should not have parameters and return value for 8051 Platform.
              static void (*DispHdMap[DISP_MAX_STATUS])(void) = {
                      _halDispNormal, //Including NODEV, PAUSE, PLAY
                      _halDispIdx,
                      _halDispVol,
                      _halDispFM,
                      _halDispSimp, //EQ
                      _halDispJump,
                      _halDispSimp, //ERROR
                      _halDispCtrlDig,        
              };
              void DispFSM()
              {
                      BYTE data bRet; 
              
                      bRet = DispFMSCase();
                      if(!bRet)       //No display needed.
                              return;
                      
                      halLCMClear(0, 3);
              
                      halMp3Req(fd_mp3);
              
                      DispHdMap[bgDispStatus](); 
                      
                      return;
              }
              
              #endif
 483          


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.01   DISPLAY                                                               04/17/2008 09:54:53 PAGE 9   

   CODE SIZE        =   ----    ----
   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -