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

📄 mode_task.lst

📁 串口小程序
💻 LST
字号:
C51 COMPILER V7.02a   MODE_TASK                                                            09/13/2007 11:53:03 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE MODE_TASK
OBJECT MODULE PLACED IN mode_task.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE modules\mode\mode_task.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.
                    -\;.\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\mode_task.lst) OBJECT(mode_task.obj)

stmt level    source

   1          /*C**************************************************************************
   2          * NAME:         mode_task.c
   3          *----------------------------------------------------------------------------
   4          * Copyright (c) 2003 Atmel.
   5          *----------------------------------------------------------------------------
   6          * RELEASE:      snd1c-refd-nf-4_0_3      
   7          * REVISION:     1.11     
   8          *----------------------------------------------------------------------------
   9          * PURPOSE:
  10          * This file contains the  mode task and attached routines
  11          *
  12          * NOTES:
  13          * Global Variables:
  14          *   - gl_key_press: bit in bdata space
  15          *   - gl_key:       byte in idata space
  16          *   - gl_cpt_tick:  byte in data space
  17          *****************************************************************************/
  18          
  19          
  20          /*_____ I N C L U D E S ____________________________________________________*/
  21          
  22          #include "config.h"                         /* system configuration */
  23          #include "board.h"                          /* board definition */
  24          #include "modules\display\disp.h"           /* display definition */
  25          #include "modules\song\song_task.h"         /* song task definition */
  26          #include "modules\voice\voice_task.h"       /* voice task definition */
  27          #include "modules\tool\tool_task.h"         /* tool task definition */
  28          #include "modules\kbd\kbd_task.h"           /* keyboard task definition */
  29          #include "modules\mem\mem_task.h"           /* memory task definition */
  30          #include "lib_mcu\mp3\mp3_drv.h"            /* mp3 driver definition */
  31          #include "lib_mcu\clock\clock.h"            /* clock definition */
  32          #include "mode_task.h"                      /* mode task definition */
  33          
  34          
  35          /*_____ M A C R O S ________________________________________________________*/
  36          
  37          #ifndef MEM_CARD_TYPE
                #error MEM_CARD_TYPE must be defined in config.h
              #endif
  40          #ifndef MEM_CHIP_TYPE
                #error MEM_CHIP_TYPE must be defined in config.h
              #endif
  43          
  44          #ifndef START_CHECK_CPU_VERSION
                #define START_CHECK_CPU_VERSION   TRUE
              #endif
  47          
  48          #ifndef START_SKEEP_SPLASH_SCREEN
                #define START_SKEEP_SPLASH_SCREEN FALSE
              #endif
  51          
  52          
  53          /*_____ D E F I N I T I O N ________________________________________________*/
  54          
C51 COMPILER V7.02a   MODE_TASK                                                            09/13/2007 11:53:03 PAGE 2   

  55          extern  bdata bit     gl_key_press;     /* set to TRUE if a key is decoded */
  56          extern  idata Byte    gl_key;           /* value of the key pressed */
  57          extern  data  Byte    gl_cpt_tick;      /* general tick counter */
  58          
  59          data  Byte    mode_state;               /* task state */
  60          
  61          
  62          /*_____ D E C L A R A T I O N ______________________________________________*/
  63          
  64          
  65          /*F**************************************************************************
  66          * NAME: mode_task_init
  67          *----------------------------------------------------------------------------
  68          * PARAMS:
  69          *
  70          * return:
  71          *----------------------------------------------------------------------------
  72          * PURPOSE: 
  73          *   Mode task initialization 
  74          *----------------------------------------------------------------------------
  75          * EXAMPLE:
  76          *----------------------------------------------------------------------------
  77          * NOTE:
  78          *----------------------------------------------------------------------------
  79          * REQUIREMENTS:
  80          *****************************************************************************/
  81          void mode_task_init (void)
  82          {
  83   1        mode_state = MODE_BOOT;
  84   1        song_task_init();
  85   1        voice_task_init();
  86   1        tool_task_init();
  87   1      }
  88          
  89          
  90          /*F**************************************************************************
  91          * NAME: mode_task
  92          *----------------------------------------------------------------------------
  93          * PARAMS:
  94          *
  95          * return:
  96          *----------------------------------------------------------------------------
  97          * PURPOSE: 
  98          *   Mode task 
  99          *----------------------------------------------------------------------------
 100          * EXAMPLE:
 101          *----------------------------------------------------------------------------
 102          * NOTE:
 103          *   STATES:
 104          *   MODE_BOOT     boot state
 105          *   MODE_SPLASH   wait splash time
 106          *   MODE_DOWNLOAD file download mode
 107          *   MODE_SONG     song playing mode
 108          *   MODE_VOICE    voice playing & recording mode
 109          *   MODE_TOOL     tool mode
 110          *   MODE_IDLE     idle mode (switch back to first task)
 111          *----------------------------------------------------------------------------
 112          * REQUIREMENTS:
 113          *****************************************************************************/
 114          void mode_task (void)
 115          {
 116   1        switch (mode_state)
C51 COMPILER V7.02a   MODE_TASK                                                            09/13/2007 11:53:03 PAGE 3   

 117   1        {
 118   2          case MODE_BOOT:
 119   2          {
 120   3            #if START_CHECK_CPU_VERSION == TRUE
                    if ((NVERS != CHIP_VERSION) && (NVERS != (CHIP_VERSION + 1)))
                    {
                      print_screen(FATAL_SCREEN);
                      while (1);                          /* stop if bad chip version */
                    }
                    else
                    #endif
 128   3            {
 129   4            //  print_screen(SPLASH_SCREEN);
 130   4           //   print_string(SYS_VERSION);
 131   4              mode_state = MODE_SPLASH;
 132   4              gl_cpt_tick = SPLASH_TEMPO_INIT;
 133   4              /* workaound bug MP3 over-consumption after power-up */
 134   4              Pll_set_ndiv(534);
 135   4              Pll_set_rdiv(94);
 136   4              Mp3_set_clock(3);
 137   4              Pll_enable();        
 138   4              while (!Pll_get_lock());         /* wait PLL lock MAY BE REMOVED */
 139   4              Mp3_enable();                   /* start MP3 init */
 140   4              Mp3_disable();
 141   4              Pll_stop();
 142   4              /* end of workaround */
 143   4              
 144   4            }
 145   3            break;
 146   3          }
 147   2      
 148   2          case MODE_SPLASH:
 149   2          {
 150   3            if ((START_SKEEP_SPLASH_SCREEN == TRUE) || (gl_key_press) || (gl_cpt_tick > SPLASH_TEMPO))
 151   3            {
 152   4              gl_key_press = FALSE;               /* ack possible key press */
 153   4              mode_state = MODE_SONG;
 154   4            }
 155   3            break;
 156   3          }
 157   2      
 158   2          case MODE_DOWNLOAD:
 159   2          {
 160   3            break;
 161   3          }
 162   2      
 163   2          case MODE_SONG:
 164   2          {
 165   3            song_task();                          /* song mode */
 166   3            break;
 167   3          }
 168   2      
 169   2          case MODE_VOICE:
 170   2          {
 171   3            voice_task();                         /* voice mode */
 172   3            break;
 173   3          }
 174   2      
 175   2          case MODE_TOOL:
 176   2          {
 177   3            tool_task();                          /* tool mode */
 178   3            break;
C51 COMPILER V7.02a   MODE_TASK                                                            09/13/2007 11:53:03 PAGE 4   

 179   3          }
 180   2      
 181   2          case MODE_IDLE: 
 182   2          {
 183   3            mode_state = MODE_SONG;
 184   3            break;
 185   3          }
 186   2        }
 187   1      }
 188          
 189          
 190          /*F**************************************************************************
 191          * NAME: mode_set_init
 192          *----------------------------------------------------------------------------
 193          * PARAMS:
 194          *
 195          * return:
 196          *----------------------------------------------------------------------------
 197          * PURPOSE: 
 198          *   Sets mode task in init state
 199          *----------------------------------------------------------------------------
 200          * EXAMPLE:
 201          *----------------------------------------------------------------------------
 202          * NOTE:
 203          *   Called from song, voice, mass, tool, usb tasks before stopping
 204          *----------------------------------------------------------------------------
 205          * REQUIREMENTS:
 206          *****************************************************************************/
 207          void mode_set_init (void)
 208          {
 209   1        mode_state++;
 210   1      }
 211          
 212          
 213          /*F**************************************************************************
 214          * NAME: mode_set_download
 215          *----------------------------------------------------------------------------
 216          * PARAMS:
 217          *
 218          * return:
 219          *----------------------------------------------------------------------------
 220          * PURPOSE: 
 221          *   Set mode task in download state
 222          *----------------------------------------------------------------------------
 223          * EXAMPLE:
 224          *----------------------------------------------------------------------------
 225          * NOTE:
 226          *   Called from usb task to stop the current task and switch to download task
 227          *----------------------------------------------------------------------------
 228          * REQUIREMENTS:
 229          *****************************************************************************/
 230          void mode_set_download (void)
 231          {
 232   1      #if MEM_CARD_TYPE != CARD_NONE
                mem_card_select(FALSE);                   /* try selecting card */
              #endif
 235   1        switch (mode_state)
 236   1        {
 237   2          case MODE_SONG:
 238   2          {
 239   3            while (mode_state == MODE_SONG)
 240   3            {
C51 COMPILER V7.02a   MODE_TASK                                                            09/13/2007 11:53:03 PAGE 5   

 241   4              kbd_set_stop();
 242   4              song_task();                        /* exit song task */
 243   4            }
 244   3            mode_state = MODE_DOWNLOAD;
 245   3            break;
 246   3          }
 247   2        
 248   2          case MODE_VOICE:
 249   2          {
 250   3            while (mode_state == MODE_VOICE)
 251   3            {
 252   4              kbd_set_stop();
 253   4              voice_task();                       /* exit voice task */
 254   4            }
 255   3            mode_state = MODE_DOWNLOAD;
 256   3            break;
 257   3          }
 258   2        
 259   2          case MODE_TOOL:
 260   2          {
 261   3            while (mode_state == MODE_TOOL)
 262   3            {
 263   4              kbd_set_stop();
 264   4              tool_task();                        /* exit tool task */
 265   4            }
 266   3            mode_state = MODE_DOWNLOAD;
 267   3            break;
 268   3          }
 269   2      
 270   2          default:
 271   2          {
 272   3            mode_state = MODE_DOWNLOAD;
 273   3            break;
 274   3          }
 275   2        }
 276   1      }
 277          
 278          
 279          /*F**************************************************************************
 280          * NAME: mode_exit_download
 281          *----------------------------------------------------------------------------
 282          * PARAMS:
 283          *
 284          * return:
 285          *----------------------------------------------------------------------------
 286          * PURPOSE: 
 287          *   Switch mode task from download to song state
 288          *----------------------------------------------------------------------------
 289          * EXAMPLE:
 290          *----------------------------------------------------------------------------
 291          * NOTE:
 292          *   Called from usb task when disconnecting
 293          *----------------------------------------------------------------------------
 294          * REQUIREMENTS:
 295          *****************************************************************************/
 296          void mode_exit_download (void)
 297          {
 298   1        if (mode_state == MODE_DOWNLOAD)
 299   1        {
 300   2          mode_state++;
 301   2          #if MEM_CARD_TYPE != CARD_NONE
                    mem_card_select(FALSE);                   /* force reselect memory */
C51 COMPILER V7.02a   MODE_TASK                                                            09/13/2007 11:53:03 PAGE 6   

                  #endif
 304   2        }
 305   1      }
 306          
 307          
 308          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    178    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   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 + -