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

📄 4010ui.lst

📁 威望公司MP3 + USB MCU 的参考软件
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.01   4010UI                                                                04/17/2008 09:54:45 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE 4010UI
OBJECT MODULE PLACED IN .\Debug\4010UI.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main\4010UI.c LARGE OPTIMIZE(9,SIZE) REGFILE(.\Debug\VA4010_SDK_V2.ORC) BRO
                    -WSE NOINTPROMOTE INCDIR(.\common;.\e2prom;.\file;.\fmtx;.\ir;.\keyboard;.\lcm;.\led;.\main;.\matrixkey;.\mp3ctrl;.\sd;.\
                    -usbhost;.\include;.\lib) DEBUG OBJECTEXTEND PRINT(.\Debug\4010UI.lst) OBJECT(.\Debug\4010UI.obj)

line level    source

   1          /****************************************************************
   2          *                      Viaon Technology (Suzhou) Co.,Ltd
   3          *
   4          *    Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
   5          *                    All rights reserved.
   6          *
   7          *
   8          * Filename:             4010UI.c
   9          *
  10          * Programmer:           Greg
  11          *
  12          * Created:              1/2/2008
  13          *
  14          * Description:          public functions 
  15          *              
  16          *        
  17          * Change History (most recent first):   2008.1.2
  18          ****************************************************************/
  19          #include "utiltypedef.h"
  20          #include "4010UI.h"
  21          #include "timer.h"
  22          #include "halfm.h"
  23          #include "hallcm.h"
  24          #include "hali2c.h"
  25          #include "halmp3dec.h"
  26          #include "display.h"
  27          #include "halvol.h"
  28          #include "halir.h"
  29          #include "halinfo.h"
  30          #include "halfm.h"
  31          
  32          static WORD data JumpSong = 0;
  33          BYTE data JumpType = JUMP_IDLE;
  34          extern BOOL data IsJumpFlag;
  35          extern volatile BYTE data SongLocateTick;
  36          extern BYTE data bDEVFlag;
  37          extern BYTE DEVAttach[2];
  38          //global value for IR
  39          extern STREAM *fd_mp3;
  40          
  41          BYTE data irjumptype = IRJUMP_TYPE_IDLE;
  42          static WORD data irjump = 0;
  43          //static BYTE data jump1 = 0;
  44          //static BYTE data jump2 = 0;
  45          
  46          //The MSB bit will be used to indicate the type of key.(1: control, 0:digital code)
  47          //Assume the MSB bit will not be used by IR CODE.
  48          #define IRKEY_TYPE_CTRL 0X80
  49          #if (IR_KEY_NUMBER == IR_KEY_NUM20)
              #define IRKEY_NUM               ((IR_KEY_NUMBER-2)*2)   //PICKSONG, CHSET key is not included.
              #else
  52          #define IRKEY_NUM               (IR_KEY_NUMBER*2)
  53          #endif
C51 COMPILER V8.01   4010UI                                                                04/17/2008 09:54:45 PAGE 2   

  54          static BYTE KeyMap[IRKEY_NUM] = {
  55          //IR Control 6 Keys
  56                  IR_CODE_PLAYPAUSE,                      KEY_STATUS_PLAYPAUSE|IRKEY_TYPE_CTRL, //IR_CODE, KEYSTATUS
  57                  IR_CODE_FM_INCREASE,            KEY_STATUS_FM|IRKEY_TYPE_CTRL,
  58                  IR_CODE_VOLDOWN,                        KEY_STATUS_VOLDOWN|IRKEY_TYPE_CTRL,
  59                  IR_CODE_VOLUP,                          KEY_STATUS_VOLUP|IRKEY_TYPE_CTRL,       
  60                  IR_CODE_RSEEK,                          KEY_STATUS_RSEEK|IRKEY_TYPE_CTRL,
  61                  IR_CODE_FSEEK,                          KEY_STATUS_FSEEK|IRKEY_TYPE_CTRL,
  62          
  63          //IR Control 7 Keys
  64          #if (IR_KEY_NUMBER >= IR_KEY_NUM7)
                      IR_CODE_FM_DECREASE,            KEY_STATUS_FM_DECREASE|IRKEY_TYPE_CTRL,
              #endif
  67          
  68          //IR Control 8 Keys
  69          #if (IR_KEY_NUMBER >= IR_KEY_NUM8)
                      IR_CODE_EQ,                                     KEY_STATUS_EQ|IRKEY_TYPE_CTRL,
              #endif
  72          
  73          //IR Control 20 Keys
  74          #if (IR_KEY_NUMBER >= IR_KEY_NUM20)
                      IR_CODE_0,  0,  
                      IR_CODE_1,  1,
                      IR_CODE_2,  2,
                      IR_CODE_3,  3,
                      IR_CODE_4,  4,
                      IR_CODE_5,  5,
                      IR_CODE_6,  6,
                      IR_CODE_7,  7,
                      IR_CODE_8,  8,
                      IR_CODE_9,  9,
                      //0xff,             IR_CODE_JUMP100_21, 100
                      //0xff,             IR_CODE_JUMP200_21, 200     
                      //0xff, 0xff,//{IR_CODE_PICKSONG, } //Assume the 0xff will not be used.
                      //0xff, 0xff,//{IR_CODE_CHSET, }
              #endif  
  90          };
  91          
  92          
  93          WORD halIRGetJump(void)
  94          {
  95   1      //      WORD wTmp;
  96   1      
  97   1              //if( irflag == IR_KEY20){
  98   1              //      wTmp = irjump;
  99   1      
 100   1              //}//else{ //IR_KEY21
 101   1                      //wTmp = (irjump+jump1*100+jump2*200);
 102   1              //}
 103   1      
 104   1              return irjump;
 105   1      }
 106          
 107          void halIRClrJump(void)
 108          {
 109   1              irjump = 0;
 110   1      //      jump1 = 0; jump2 = 0;
 111   1              irjumptype = IRJUMP_TYPE_IDLE;
 112   1              
 113   1              return;
 114   1      }
 115          
C51 COMPILER V8.01   4010UI                                                                04/17/2008 09:54:45 PAGE 3   

 116          void halIRPickSong(void)
 117          {
 118   1              WORD wTmp = halIRGetJump();
 119   1      
 120   1              if((wTmp != 0)&&(wTmp<=Mp3SReq.swTotalCnt)){
 121   2                      keystatus = KEY_STATUS_JUMP;
 122   2                      //UartOutText("-I-: KEY_STATUS_JUMP=");UartOutValue(irjump, 4);
 123   2                      Mp3SReq.swJump = wTmp;
 124   2              }else{
 125   2                      DispSetStatus(DISP_ERROR_STATUS);
 126   2              }       
 127   1              
 128   1              //halIRClrJump();                       
 129   1      
 130   1              return;
 131   1      }
 132          
 133          void halIRChSet(void)
 134          {
 135   1              BYTE bTmp;
 136   1      
 137   1              bTmp = halFMFreq2Idx(halIRGetJump());
 138   1              if(bTmp != FM_CHIDX_INVALID){
 139   2                      halFMSet(bTmp);//halFMFreq2Idx(irjump)
 140   2                      halWRInfo1();   //Record the new FM Frequency
 141   2                      //keystatus = KEY_STATUS_FM;
 142   2                      DispSetStatus(DISP_FMCH_STATUS);        
 143   2                      UartOutText("-I-:irjumptype:\t");UartOutValue(irjumptype, 2);
 144   2                      UartOutText("-I-:bTmp:\t");UartOutValue(bTmp, 2);
 145   2      
 146   2                      
 147   2              }else{
 148   2                      DispSetStatus(DISP_ERROR_STATUS);
 149   2              }
 150   1              
 151   1              //halIRClrJump();                       
 152   1      
 153   1              return;
 154   1      }
 155          
 156          void _halIRDigHd(BYTE bT1)
 157          {
 158   1              BYTE i;
 159   1              
 160   1              /*Search the key map*/
 161   1              for(i=0; i<IRKEY_NUM; i+=2){
 162   2                      if(KeyMap[i] == bT1){//Got it.
 163   3                              if(KeyMap[i+1]&IRKEY_TYPE_CTRL){
 164   4                                      //keystatus = bT1;
 165   4                                      keystatus = KeyMap[i+1]&(~IRKEY_TYPE_CTRL); //Clear the type bit
 166   4                                      if((keystatus == KEY_STATUS_FSEEK)||(keystatus == KEY_STATUS_RSEEK)){
 167   5                                              IsJumpFlag = TRUE;
 168   5                                              SongLocateTick = 0;
 169   5                                      }
 170   4                                      UartOutText("-I-:keystatus \t");UartOutValue(keystatus, 2);
 171   4                              }else{//Digital         
 172   4                                      if(irjumptype != IRJUMP_TYPE_IDLE)      {
 173   5                                              irjump = irjump*10 + KeyMap[i+1];
 174   5                                      }
 175   4                                      UartOutText("-I-irjump----\t");UartOutValue(irjump, 2);
 176   4                              }
 177   3                      }
C51 COMPILER V8.01   4010UI                                                                04/17/2008 09:54:45 PAGE 4   

 178   2              }
 179   1      
 180   1              return;
 181   1      }
 182          
 183          void halIRHandle(void)
 184          {       
 185   1              BYTE data bT1;
 186   1              WORD wUCode;
 187   1              DWORD irdata;
 188   1              
 189   1              if(halIRGet(&irdata) == TRUE){
 190   2              //if(halIRGet(&irdata) != IR_NULL){//if need to response repeat IR
 191   2      
 192   2                      //IR key validation checking
 193   2                      //bT0 = ((BYTE *)(&irdata))[0];//Key code
 194   2                      bT1 = ((BYTE *)(&irdata))[1];
 195   2                      wUCode = ((WORD *)(&irdata))[1];
 196   2                      UartOutText("-I-: irdata 0x");UartOutValue(irdata, 2);
 197   2                      //Checking the Key Code here. BYTE3 == ~BYTE4, and checking the max key code
 198   2                      //UartOutText("-I-: bT0=");UartOutValue(bT0, 2);
 199   2                      //UartOutText("-I-: IR bT1=");UartOutValue(bT1, 2);
 200   2                      //UartOutText("-I-: wUCode=");UartOutValue(wUCode, 4);
 201   2      
 202   2                      //Checking the User Code here
 203   2                      //if((IR_CODE_USER_CODE != wUCode) || (bT0 != ~bT1))
 204   2                      //if((IR_CODE_USER_CODE != wUCode))             return;
 205   2                      if((IR_CODE_USER_CODE != wUCode))
 206   2                      {
 207   3                              return;
 208   3                      }       
 209   2                      UartOutText("-I-: IR bT1=");UartOutValue(bT1, 2);
 210   2                      
 211   2                      //IR key handler        
 212   2      #if (IR_KEY_NUMBER == IR_KEY_NUM20)             
                                      switch(bT1){
                                      case IR_CODE_PICKSONG:
                                              //Clear irjump, waitting digital input
                                              //Record IR key type, the MSB will be used.
                                              halIRClrJump();                 
                                              irjumptype = IRJUMP_TYPE_PICKSONG;
                                              DispSetStatus(DISP_CTRLDIG_STATUS);
                                              UartOutText("-I-irjump\t");UartOutValue(irjump, 2);
                                              break;
                                              
                                      case IR_CODE_CHSET:
                                              //Clear irjump, waitting digital input
                                              //Record IR key type, the MSB will be used.
                                              halIRClrJump();                 
                                              irjumptype = IRJUMP_TYPE_CHSET;
                                              DispSetStatus(DISP_CTRLDIG_STATUS);
                                              break;
              
                                      default:
                                              _halIRDigHd(bT1);
                                              break;
                                      }
              #else
 236   2                              _halIRDigHd(bT1);
 237   2      #endif
 238   2                      //Show JUMP
 239   2              #if ((IR_KEY_NUMBER == IR_KEY_NUM20)    )
C51 COMPILER V8.01   4010UI                                                                04/17/2008 09:54:45 PAGE 5   

                              if(halIRGetJump() > DIGITAL_SHOW_MAX_VALUE){
                                      DispSetStatus(DISP_ERROR_STATUS);
                                      halIRClrJump();
                              }
                      
                              if(halIRGetJump() > 0){
                                      DispSetStatus(DISP_CTRLDIG_STATUS);
                              }       
                      #endif  
 249   2              }
 250   1      
 251   1              return;
 252   1      }
 253          
 254          void _halKeyEQ()
 255          {
 256   1      #ifdef ENABLE_EQ_KEY
 257   1              halEQUp();//halEQSet();//g_byEqValue = halSetEQ(g_byEqValue+1);
 258   1              DispSetStatus(DISP_EQ_STATUS);
 259   1      #endif
 260   1              return;
 261   1      }
 262          
 263          void _halKeyFMUp()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -