亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mode_task.c

?? ATMEL 89c51sndc mp3外接硬盤源碼
?? C
字號:
/*C**************************************************************************
* NAME:         mode_task.c
*----------------------------------------------------------------------------
* Copyright (c) 2002 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-demo-hdd-0_2_0      
* REVISION:     1.1     
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the  mode task and attached routines
*
* NOTES:
* Global Variables:
*   - gl_key_press: bit in bdata space
*   - gl_key:       byte in idata space
*   - gl_cpt_tick:  byte in data space
*****************************************************************************/


/*_____ I N C L U D E S ____________________________________________________*/

#include "config.h"                         /* system configuration */
#include "lib_demob\board.h"                /* board definition */
#include "..\display\disp.h"                /* display definition */
#include "..\song\song_task.h"              /* song task definition */
#include "..\voice\voice_task.h"            /* voice task definition */
#include "..\tool\tool_task.h"              /* tool task definition */
#include "..\kbd\kbd_task.h"                /* keyboard task definition */
#include "..\mem\mem_task.h"                /* memory task definition */
#include "mode_task.h"                      /* mode task definition */


/*_____ M A C R O S ________________________________________________________*/


/*_____ D E F I N I T I O N ________________________________________________*/

extern  bdata bit     gl_key_press;     /* set to TRUE if a key is decoded */
extern  idata Byte    gl_key;           /* value of the key pressed */
extern  data  Byte    gl_cpt_tick;      /* general tick counter */

static  data  Byte    mode_state;       /* task state */


/*_____ D E C L A R A T I O N ______________________________________________*/


/*F**************************************************************************
* NAME: mode_task_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Mode task initialization 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void mode_task_init (void)
{
  mode_state = MODE_BOOT;
  song_task_init();
  voice_task_init();
  tool_task_init();
}


/*F**************************************************************************
* NAME: mode_task
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Mode task 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   STATES:
*   MODE_BOOT     boot state
*   MODE_SPLASH   wait splash time
*   MODE_DOWNLOAD file download mode
*   MODE_SONG     song playing mode
*   MODE_VOICE    voice playing & recording mode
*   MODE_TOOL     tool mode
*   MODE_IDLE     idle mode (switch back to first task)
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void mode_task (void)
{
  switch (mode_state)
  {
    case MODE_BOOT:
    {
      if (NVERS < CHIP_VERSION)
      {
        print_screen(FATAL_SCREEN);
        while (1);                          /* stop if bad chip version */
      }
      else
      {
        print_screen(SPLASH_SCREEN);
        print_string(SYS_VERSION);
        mode_state = MODE_SPLASH;
        gl_cpt_tick = SPLASH_TEMPO_INIT;
      }
      break;
    }

    case MODE_SPLASH:
    {
      if (gl_key_press || (gl_cpt_tick > SPLASH_TEMPO))
      {
        gl_key_press = FALSE;               /* ack possible key press */
        mode_state = MODE_SONG;
      }
      break;
    }

    case MODE_DOWNLOAD:
    {
      break;
    }

    case MODE_SONG:
    {
      song_task();                          /* song mode */
      break;
    }

    case MODE_VOICE:
    {
      voice_task();                         /* voice mode */
      break;
    }

    case MODE_TOOL:
    {
      tool_task();                          /* tool mode */
      break;
    }

    case MODE_IDLE: 
    {
      mode_state = MODE_SONG;
      break;
    }
  }
}


/*F**************************************************************************
* NAME: mode_set_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Sets mode task in init state
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Called from song, voice, mass, tool, usb tasks before stopping
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void mode_set_init (void)
{
  mode_state++;
}


/*F**************************************************************************
* NAME: mode_set_download
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Set mode task in download state
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Called from usb task to stop the current task and switch to download task
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void mode_set_download (void)
{
  mem_card_select(FALSE);                   /* try selecting card */
  switch (mode_state)
  {
    case MODE_SONG:
    {
      while (mode_state == MODE_SONG)
      {
        kbd_set_stop();
        song_task();                        /* exit song task */
      }
      mode_state = MODE_DOWNLOAD;
      break;
    }
  
    case MODE_VOICE:
    {
      while (mode_state == MODE_VOICE)
      {
        kbd_set_stop();
        voice_task();                       /* exit voice task */
      }
      mode_state = MODE_DOWNLOAD;
      break;
    }
  
    case MODE_TOOL:
    {
      while (mode_state == MODE_TOOL)
      {
        kbd_set_stop();
        tool_task();                        /* exit tool task */
      }
      mode_state = MODE_DOWNLOAD;
      break;
    }

    default:
    {
      mode_state = MODE_DOWNLOAD;
      break;
    }
  }
}


/*F**************************************************************************
* NAME: mode_exit_download
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Switch mode task from download to song state
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Called from usb task when disconnecting
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void mode_exit_download (void)
{
  if (mode_state == MODE_DOWNLOAD)
  {
    mode_state++;
    mem_card_select(FALSE);                   /* force reselect memory */
  }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区午夜精品| 在线影视一区二区三区| 五月天视频一区| 亚洲精品日韩综合观看成人91| 久久在线免费观看| 久久久精品影视| 久久久激情视频| 国产精品亲子伦对白| 国产丝袜美腿一区二区三区| 国产欧美日韩视频在线观看| 国产欧美日产一区| 最新不卡av在线| 亚洲乱码国产乱码精品精小说| 亚洲综合一二区| 日韩1区2区3区| 国产精品资源网| 成人h版在线观看| 欧美视频三区在线播放| 欧美精品日韩一区| 久久一区二区视频| 亚洲欧洲av一区二区三区久久| 专区另类欧美日韩| 亚洲成av人片在www色猫咪| 日韩av网站免费在线| 国产成人日日夜夜| 色综合天天狠狠| 日韩一级大片在线| 中文无字幕一区二区三区| 伊人性伊人情综合网| 亚洲成人免费看| 国产精品亚洲午夜一区二区三区| eeuss国产一区二区三区| 欧美日韩一本到| wwww国产精品欧美| 一区二区在线观看av| 男男视频亚洲欧美| 成人h动漫精品一区二区| 欧美日韩在线免费视频| 久久婷婷国产综合精品青草| 亚洲视频中文字幕| 经典三级视频一区| 欧美在线一区二区三区| 久久精品一区四区| 性欧美疯狂xxxxbbbb| 国产91丝袜在线播放| 欧美日本一区二区在线观看| 国产色产综合色产在线视频| 婷婷综合五月天| 成人精品鲁一区一区二区| 9191久久久久久久久久久| 国产精品美日韩| 麻豆91免费看| 欧美三级视频在线| 一区在线观看视频| 国产在线国偷精品产拍免费yy| 欧美在线播放高清精品| 亚洲国产激情av| 紧缚奴在线一区二区三区| 欧美视频在线不卡| 亚洲视频 欧洲视频| 风间由美一区二区av101| 日韩一二三区视频| 首页国产欧美久久| 91久久精品日日躁夜夜躁欧美| 日本一区二区免费在线观看视频 | 高清成人免费视频| 精品少妇一区二区三区在线视频| 亚洲视频一区二区在线观看| 国产成人av自拍| 精品福利av导航| 黄色小说综合网站| 精品国产一区二区三区久久久蜜月| 天天免费综合色| 欧美日本不卡视频| 青青国产91久久久久久| 欧美精品视频www在线观看| 五月激情综合色| 欧美日韩国产综合一区二区| 亚洲永久免费视频| 欧美日韩国产片| 亚洲成人午夜电影| 日韩欧美一区在线| 国产一区二区不卡| 中文字幕精品一区二区精品绿巨人| 国产成人在线视频网址| 欧美激情在线一区二区三区| 成人理论电影网| 国产精品国产成人国产三级| 972aa.com艺术欧美| 亚洲精品国产a| 欧美伦理影视网| 久久精品久久99精品久久| 久久久综合视频| 成人av网站在线| 亚洲二区视频在线| 精品粉嫩超白一线天av| 粉嫩av一区二区三区粉嫩| 亚洲日本va在线观看| 欧美久久久一区| 国产又黄又大久久| 亚洲欧美国产三级| 91精品国产高清一区二区三区 | 日韩高清不卡在线| 久久这里只有精品首页| 97久久超碰国产精品| 天堂一区二区在线| 久久精品一区二区三区av| 91色在线porny| 蜜桃精品视频在线| 亚洲视频一二三区| 日韩欧美国产精品| 91首页免费视频| 毛片一区二区三区| 中文字幕精品一区二区精品绿巨人| 日本高清不卡在线观看| 美女精品自拍一二三四| 亚洲日本电影在线| 久久婷婷一区二区三区| 欧美性videosxxxxx| 国产精品996| 午夜精品久久久久久久久久| 日本一区二区三区视频视频| 欧美日韩亚洲丝袜制服| 波多野结衣视频一区| 久久福利视频一区二区| 亚洲高清在线视频| 国产精品第一页第二页第三页 | 国产精品一区二区免费不卡| 亚洲码国产岛国毛片在线| 久久久久综合网| 91麻豆精品国产91久久久更新时间 | 精品国产一区二区三区不卡| 在线国产电影不卡| 成人精品免费看| 精品写真视频在线观看| 日精品一区二区| 亚洲五月六月丁香激情| 亚洲视频你懂的| 日本一区二区久久| 久久久亚洲欧洲日产国码αv| 91 com成人网| 欧美日韩国产另类不卡| 欧美中文字幕一二三区视频| 99精品一区二区三区| 粉嫩在线一区二区三区视频| 卡一卡二国产精品| 石原莉奈在线亚洲三区| 一区二区在线免费| 亚洲国产另类精品专区| 亚洲伊人伊色伊影伊综合网| 一区二区三区在线免费播放| 亚洲欧洲综合另类在线| 亚洲色图在线视频| 亚洲精品视频在线| 一区二区激情小说| 亚洲电影一级片| 视频精品一区二区| 美腿丝袜亚洲综合| 国产精品综合网| 成人免费视频视频| 日本韩国欧美三级| 欧美亚洲尤物久久| 欧美精品乱人伦久久久久久| 欧美人狂配大交3d怪物一区| 制服丝袜亚洲精品中文字幕| 欧美一区永久视频免费观看| 精品电影一区二区| 国产日韩精品视频一区| 中文字幕在线观看一区| 一级中文字幕一区二区| 日韩国产精品大片| 国产成人亚洲精品狼色在线 | 91麻豆精品国产91久久久 | 一区二区三区中文字幕精品精品| 亚洲精品乱码久久久久久日本蜜臀 | 2017欧美狠狠色| 国产欧美精品一区二区色综合朱莉| 国产精品电影一区二区三区| 亚洲一区二区成人在线观看| 日韩成人av影视| 国产成人精品免费网站| 色婷婷精品大在线视频| 欧美一二区视频| 中文字幕 久热精品 视频在线 | 国产福利一区二区三区在线视频| 不卡区在线中文字幕| 在线亚洲免费视频| 欧美精品一区男女天堂| 《视频一区视频二区| 日韩影院在线观看| 成人av电影在线网| 在线播放亚洲一区| 亚洲欧美在线高清| 麻豆成人久久精品二区三区小说| 丁香五精品蜜臀久久久久99网站| 欧美视频在线观看一区二区| 国产亚洲综合性久久久影院| 午夜欧美电影在线观看| 丁香六月综合激情| 日韩午夜电影av|