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

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

?? mode_task.c

?? Atmel單片機的原理圖啊
?? C
字號:
/*C**************************************************************************
* NAME:         mode_task.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-refd-nf-4_0_3      
* REVISION:     1.11     
*----------------------------------------------------------------------------
* 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 "board.h"                          /* board definition */
#include "modules\display\disp.h"           /* display definition */
#include "modules\song\song_task.h"         /* song task definition */
#include "modules\voice\voice_task.h"       /* voice task definition */
#include "modules\tool\tool_task.h"         /* tool task definition */
#include "modules\kbd\kbd_task.h"           /* keyboard task definition */
#include "modules\mem\mem_task.h"           /* memory task definition */
#include "lib_mcu\mp3\mp3_drv.h"            /* mp3 driver definition */
#include "lib_mcu\clock\clock.h"            /* clock definition */
#include "mode_task.h"                      /* mode task definition */


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

#ifndef MEM_CARD_TYPE
  #error MEM_CARD_TYPE must be defined in config.h
#endif
#ifndef MEM_CHIP_TYPE
  #error MEM_CHIP_TYPE must be defined in config.h
#endif

#ifndef START_CHECK_CPU_VERSION
  #define START_CHECK_CPU_VERSION   TRUE
#endif

#ifndef START_SKEEP_SPLASH_SCREEN
  #define START_SKEEP_SPLASH_SCREEN FALSE
#endif


/*_____ 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 */

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 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
      {
        print_screen(SPLASH_SCREEN);
        print_string(SYS_VERSION);
        mode_state = MODE_SPLASH;
        gl_cpt_tick = SPLASH_TEMPO_INIT;
        /* workaound bug MP3 over-consumption after power-up */
        Pll_set_ndiv(534);
        Pll_set_rdiv(94);
        Mp3_set_clock(3);
        Pll_enable();        
        while (!Pll_get_lock());        /* wait PLL lock MAY BE REMOVED */
        Mp3_enable();                   /* start MP3 init */
        Mp3_disable();
        Pll_stop();
        /* end of workaround */
      }
      break;
    }

    case MODE_SPLASH:
    {
      if ((START_SKEEP_SPLASH_SCREEN == TRUE) || (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)
{
#if MEM_CARD_TYPE != CARD_NONE
  mem_card_select(FALSE);                   /* try selecting card */
#endif
  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++;
    #if MEM_CARD_TYPE != CARD_NONE
      mem_card_select(FALSE);                   /* force reselect memory */
    #endif
  }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩亚州综合| 婷婷久久综合九色国产成人| 亚洲国产cao| 国产精品综合一区二区三区| 欧美在线高清视频| 中文在线资源观看网站视频免费不卡 | 国产精品热久久久久夜色精品三区 | 91麻豆精品国产自产在线观看一区| 26uuuu精品一区二区| 另类小说综合欧美亚洲| 99在线视频精品| 久久综合久久久久88| 日韩和欧美的一区| 91国偷自产一区二区开放时间| 国产清纯白嫩初高生在线观看91 | 国产高清亚洲一区| 日韩欧美中文字幕一区| 亚洲成a人片在线观看中文| www.66久久| 国产亚洲欧美激情| 国产一区不卡精品| 久久久久久9999| 国产精品一区二区x88av| 精品国产3级a| 国产在线视视频有精品| 日韩视频123| 日本aⅴ免费视频一区二区三区 | 日日夜夜精品免费视频| 欧洲精品在线观看| 亚洲影院理伦片| 91蝌蚪porny| 一区二区在线看| 在线观看国产91| 亚洲国产另类av| 日韩一级大片在线| 精品中文字幕一区二区| 欧美成人a在线| 国产精品一二三| 欧美激情在线观看视频免费| 国产成人午夜片在线观看高清观看| 欧美xingq一区二区| 国产一区二区精品在线观看| 久久午夜老司机| 精品国产乱码久久久久久1区2区| 久久国产精品区| 国产片一区二区三区| 成人午夜碰碰视频| 国产精品每日更新在线播放网址| 99久久99久久久精品齐齐| 一区二区免费在线| 91精品黄色片免费大全| 久久99精品久久只有精品| 久久精品一区蜜桃臀影院| gogo大胆日本视频一区| 一区二区三区不卡视频| 欧美一区二区三区系列电影| 久久99国产乱子伦精品免费| 国产欧美日韩另类一区| 一本一本久久a久久精品综合麻豆| 一区二区三区在线视频观看| 欧美日韩精品欧美日韩精品一| 日韩av二区在线播放| 国产午夜亚洲精品不卡| 一本色道久久综合亚洲aⅴ蜜桃 | aaa欧美大片| 视频在线观看一区| 久久综合色综合88| 色94色欧美sute亚洲线路一ni| 天堂蜜桃一区二区三区| 国产情人综合久久777777| 欧美视频在线观看一区二区| 国产综合成人久久大片91| 亚洲婷婷国产精品电影人久久| 在线成人免费视频| av在线播放成人| 久久精品72免费观看| 最新国产の精品合集bt伙计| 欧美一区二区三区日韩视频| av一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲一区二区三区影院| 欧美国产乱子伦| 精品久久久久久久久久久久久久久久久| 成人涩涩免费视频| 精品系列免费在线观看| 亚洲国产精品欧美一二99| 国产精品久久久久久久久图文区| 制服丝袜成人动漫| 在线欧美一区二区| 99这里只有精品| 粉嫩av一区二区三区粉嫩 | 国产成人99久久亚洲综合精品| 亚洲一区二区偷拍精品| 亚洲日本一区二区| 日本一区二区视频在线| 精品91自产拍在线观看一区| 欧美精品丝袜久久久中文字幕| www.日韩精品| 粉嫩av一区二区三区粉嫩| 国产乱码精品一区二区三 | 91欧美激情一区二区三区成人| 黄页网站大全一区二区| 麻豆精品在线观看| 奇米亚洲午夜久久精品| 日本亚洲免费观看| 日本欧美加勒比视频| 亚洲成人1区2区| 午夜精品爽啪视频| 午夜久久福利影院| 日韩成人免费看| 日本91福利区| 久久国产精品一区二区| 捆绑变态av一区二区三区| 美女mm1313爽爽久久久蜜臀| 青青草原综合久久大伊人精品 | 风间由美性色一区二区三区| 国产精品伊人色| 狠狠色丁香久久婷婷综合_中| 久久精品99久久久| 国产成人鲁色资源国产91色综 | 国产精一区二区三区| 国产精品一区二区你懂的| 国产精品亚洲一区二区三区在线 | 国产大陆亚洲精品国产| 国产盗摄一区二区| 91同城在线观看| 在线视频观看一区| 91精品国产欧美日韩| 日韩免费视频一区| 国产欧美日韩精品在线| 亚洲欧美综合网| 一区二区三区国产精品| 午夜精品久久久久久久 | 91美女在线视频| 欧美亚洲一区二区三区四区| 日韩一级片在线观看| 久久精品免视看| 亚洲乱码精品一二三四区日韩在线| 有坂深雪av一区二区精品| 青青草视频一区| 高清国产一区二区| 色综合天天在线| 日韩亚洲欧美在线| 国产欧美一区二区三区沐欲 | 国产精品女同一区二区三区| 亚洲日本在线天堂| 美女视频黄 久久| av高清不卡在线| 欧美美女网站色| 中国色在线观看另类| 亚洲一区二区三区激情| 国产一区二区精品久久99| 色老汉一区二区三区| 精品久久久久99| 一区二区三区蜜桃| 国产剧情一区在线| 欧美人伦禁忌dvd放荡欲情| www久久久久| 天天操天天干天天综合网| 成人激情午夜影院| 日韩三级视频中文字幕| 亚洲欧洲三级电影| 久久99九九99精品| 欧美日韩精品一区二区三区蜜桃| 欧美激情中文字幕| 久久99久久久欧美国产| 色屁屁一区二区| 中国av一区二区三区| 麻豆精品一区二区三区| 欧美偷拍一区二区| 亚洲国产精品黑人久久久| 麻豆精品久久久| 日韩理论片一区二区| 国产又黄又大久久| 欧美剧情片在线观看| 中文字幕在线视频一区| 精品一区二区免费在线观看| 欧美综合色免费| 1024成人网| av电影在线观看完整版一区二区| 日韩免费在线观看| 美女视频网站黄色亚洲| 欧美喷水一区二区| 亚洲曰韩产成在线| 色婷婷狠狠综合| 国产精品久久看| 成人免费黄色在线| 久久久精品2019中文字幕之3| 免费看黄色91| 3d成人h动漫网站入口| 午夜电影久久久| 欧美日韩国产大片| 亚洲成av人片一区二区| 欧美无砖专区一中文字| 亚洲老妇xxxxxx| 欧美亚洲图片小说| 五月天网站亚洲| 欧美大度的电影原声| 久久精品国产**网站演员| 欧美精品一区二区在线观看|