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

📄 song_task.lst

📁 串口小程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 233   5              }
 234   4            }
 235   3            else
 236   3            {
 237   4              if (gl_key_press)                   /* stop key is pressed? */
 238   4              {
 239   5                if (gl_key == KEY_MODE)
C51 COMPILER V7.02a   SONG_TASK                                                            09/13/2007 11:53:04 PAGE 5   

 240   5                {
 241   6                  mode_set_init();                /* exit from song task */
 242   6                  song_state = SONG_START;
 243   6                }
 244   5                gl_key_press = FALSE;             /* ack key usage */
 245   5              }
 246   4            }
 247   3            break;
 248   3          }
 249   2      
 250   2      
 251   2          case SONG_IDLE:                         /* no file openned */
 252   2          {
 253   3            if (gl_key_press)                     /* a key is pressed? */
 254   3            {
 255   4              switch (gl_key)
 256   4              {
 257   5                case KEY_PLAY:
 258   5                  if (File_type() == FILE_DIR)
 259   5                  {
 260   6                    file_entry_dir(FILE_MP3 | FILE_DIR);  /* goto sub-directory */ 
 261   6                   print_file_name();            /* display directory name */
 262   6                  }
 263   5                  else
 264   5                  { /* file_type is MP3 */
 265   6                    song_state = SONG_INIT;
 266   6                  }
 267   5                  break;
 268   5      
 269   5                case KEY_NEXT:
 270   5                  file_seek_next(FILE_MP3 | FILE_DIR, TRUE);  /* select next song with loop */
 271   5                 print_file_name();              /* display file name */
 272   5                  break;
 273   5      
 274   5                case KEY_PREV:
 275   5                  file_seek_prev(FILE_MP3 | FILE_DIR, TRUE);  /* select previous song */
 276   5                  print_file_name();              /* display file name */
 277   5                  break;
 278   5      
 279   5                case KEY_INC:
 280   5                  song_snd_inc();                 /* increment selected control */
 281   5                  print_sound_level();            /* display new level */
 282   5                  break;
 283   5      
 284   5                case KEY_DEC:
 285   5                  song_snd_dec();                 /* decrement selected control */
 286   5                  print_sound_level();            /* display new level */
 287   5                  break;
 288   5      
 289   5                case KEY_SOUND:
 290   5                  song_snd_select();              /* select next sound control */
 291   5                  print_sound();                  /* display selected sound icon */
 292   5                 print_sound_level();            /* display new level */
 293   5                  break;
 294   5      
 295   5                case KEY_PARENT:
 296   5                  File_goto_parent(FILE_MP3 | FILE_DIR); /* goto parent directory */ 
 297   5                  print_file_name();              /* display first file name */
 298   5                  break;
 299   5      
 300   5                case KEY_MODE:
 301   5                  mode_set_init();                /* exit from song task */
C51 COMPILER V7.02a   SONG_TASK                                                            09/13/2007 11:53:04 PAGE 6   

 302   5                  disp_name_stop();
 303   5                  song_state = SONG_START;
 304   5                  break;
 305   5      
 306   5                case KEY_MEM:
 307   5                  mem_select_next();              /* select next memory */
 308   5                  disp_name_stop();
 309   5                  song_state = SONG_START;
 310   5                  break;
 311   5      
 312   5                default:
 313   5                  break;
 314   5              }
 315   4              gl_key_press = FALSE;               /* ack key usage */
 316   4            }
 317   3            else
 318   3            { /* check card presence */
 319   4              if (mem_check_card() == KO)
 320   4              {
 321   5                disp_name_stop();
 322   5                mem_select_next();
 323   5                song_state = SONG_START;          /* card has been unplugged */
 324   5              }
 325   4            }
 326   3            break;
 327   3          }
 328   2      
 329   2      
 330   2          case SONG_INIT:
 331   2          {
 332   3            disp_clock_reset();                   /* reset clock timer */
 333   3            if (Fopen(READ) == OK)
 334   3            {
 335   4              if (song_init() != SONG_NO_ERR)     /* init song playing */
 336   4              {
 337   5                song_stop();                      /* stop playing song */
 338   5                Fclose();
 339   5                loop = song_loop;
 340   5                song_state = SONG_NEXT;
 341   5              }
 342   4              else
 343   4              {
 344   5                song_state = SONG_PLL;
 345   5              }
 346   4            }
 347   3            else
 348   3            {
 349   4              song_state = SONG_ERROR;
 350   4            }
 351   3            break;
 352   3          }
 353   2      
 354   2      
 355   2          case SONG_PLL:
 356   2          {
 357   3            if (Pll_get_lock())                   /* pll locked? */
 358   3            {
 359   4              song_start();                       /* start playing song */
 360   4              disp_clock_start();                 /* start clock timer */
 361   4              print_state_play();                 /* display play icon */
 362   4              song_state = SONG_PLAY;
 363   4            }
C51 COMPILER V7.02a   SONG_TASK                                                            09/13/2007 11:53:04 PAGE 7   

 364   3            break;
 365   3          }
 366   2      
 367   2      
 368   2          case SONG_PLAY:
 369   2          {
 370   3            if (Feof() == TRUE)
 371   3            { /* end of file reached */
 372   4              song_stop();                        /* stop playing song */
 373   4              Fclose();
 374   4              loop = song_loop;
 375   4              song_state = SONG_NEXT;
 376   4                gl_key_press = FALSE;             /* no key usage */
 377   4              }
 378   3      
 379   3            if (gl_key_press)                     /* a key is pressed? */
 380   3            {
 381   4              switch (gl_key)
 382   4              {
 383   5                case KEY_PAUSE:
 384   5                  Aud_song_pause();               /* suspend sample request */
 385   5                  disp_clock_stop();              /* suspend clock timer */
 386   5                  print_state_pause();            /* display pause icon */
 387   5                  song_state = SONG_PAUSE;
 388   5                  break;
 389   5      
 390   5                case KEY_NEXT:
 391   5                  song_pause();                   /* pause playing song */
 392   5                  disp_clock_stop();              /* suspend clock timer */
 393   5                  Fclose();
 394   5                  loop = TRUE;                    /* keypad action so loop */
 395   5                  song_state = SONG_NEXT;
 396   5                  break;
 397   5      
 398   5                case KEY_PREV:
 399   5                  song_pause();                   /* pause playing song */
 400   5                  disp_clock_stop();              /* suspend clock timer */
 401   5                  Fclose();
 402   5                  loop = TRUE;
 403   5                  song_state = SONG_PREV;
 404   5                  break;
 405   5      
 406   5                case KEY_INC:
 407   5                  song_snd_inc();                 /* increment selected control */
 408   5                  print_sound_level();            /* display new level */
 409   5                  break;
 410   5      
 411   5                case KEY_DEC:
 412   5                  song_snd_dec();                 /* decrement selected control */
 413   5                  print_sound_level();            /* display new level */
 414   5                  break;
 415   5      
 416   5                case KEY_SOUND:
 417   5                  song_snd_select();              /* select next sound control */
 418   5                  print_sound();                  /* display selected sound icon */
 419   5                  print_sound_level();            /* display new level */
 420   5                  break;
 421   5      
 422   5                case KEY_REPEAT:
 423   5                  song_loop = ~song_loop;         /* display repeat or not */
 424   5                  print_repeat(song_loop);
 425   5                  break;
C51 COMPILER V7.02a   SONG_TASK                                                            09/13/2007 11:53:04 PAGE 8   

 426   5      
 427   5                case KEY_STOP:
 428   5                  song_stop();                    /* stop playing song */
 429   5                  Fclose();
 430   5                  song_state = SONG_STOP;
 431   5                  break;
 432   5      
 433   5                default:
 434   5                  break;
 435   5              }
 436   4              gl_key_press = FALSE;               /* ack key usage */
 437   4            }
 438   3            break;
 439   3          }
 440   2      
 441   2      
 442   2          case SONG_PAUSE:                        /* one file openned */
 443   2          {
 444   3            if (gl_key_press)                     /* a key is pressed? */
 445   3            {
 446   4              switch (gl_key)
 447   4              {
 448   5                case KEY_PLAY:
 449   5                  disp_clock_start();             /* restart clock timer */
 450   5                  Aud_song_play();                /* restart sample request */
 451   5                  print_state_play();             /* display play icon */
 452   5                  song_state = SONG_PLAY;
 453   5                  break;
 454   5      
 455   5                case KEY_NEXT:
 456   5                  song_pause();                   /* pause playing song */
 457   5                  Fclose();
 458   5                  loop = TRUE;                    /* keypad action so loop */
 459   5                  song_state = SONG_NEXT;
 460   5                  break;
 461   5      
 462   5                case KEY_PREV:
 463   5                  song_pause();                   /* pause playing song */
 464   5                  Fclose();
 465   5                  loop = TRUE;                    /* keypad action so loop */
 466   5                  song_state = SONG_PREV;
 467   5                  break;
 468   5      
 469   5                case KEY_INC:
 470   5                  song_snd_inc();                 /* increment selected control */
 471   5                  print_sound_level();            /* display new level */
 472   5                  break;
 473   5      

⌨️ 快捷键说明

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