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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? song_drv.c

?? atmel at89c51snd1 做mp3的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*C**************************************************************************
* NAME:         song_drv.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-refd-nf-4_0_3      
* REVISION:     1.20     
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the song driver routines
*****************************************************************************/

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

#include "config.h"                         /* system configuration */
#include "dac\dac_drv.h"                    /* dac driver definition */
#include "lib_mcu\aud\aud_drv.h"            /* audio driver definition */
#include "lib_mcu\mp3\mp3_drv.h"            /* mp3 driver definition */
#include "modules\file\file.h"              /* file definition */
#include "lib_mcu\clock\clock.h"            /* clock definition */
#include "song_drv.h"                       /* song driver definition */


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


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

        Byte    song_sound;                 /* save the selected sound */
        Byte    mp3_volume;
xdata   Uint16  song_frame_size;            /* Frame size value for one second  */
idata   Byte    sound_volume;               /* save actual sound level          */

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

static  void    song_audio_init (void);

code Uint16 song_tab_frame_size_00 [2][16] =
    {/* 44.1 KHz MPEG1 */
      {0, 104, 130, 156, 182, 208, 261, 313, 365, 417, 522, 626, 731, 835, 1044, 0},
     /* 22.05 KHz MPEG2 */
      {0,  26, 52, 78, 104, 130, 156, 182, 208,  261,  313, 365, 417, 470, 522, 0}
    };

code Uint16 song_tab_frame_size_01 [2][16] =
    {
    /* 48 Khz MPEG1 */
      {0, 96, 120, 144, 168, 192, 240, 288, 336, 384, 480, 576, 672, 768, 960, 0},
    /* 24 Khz MPEG2 */
      {0,  24, 48, 72, 96, 120, 144, 168, 192, 240, 288, 336, 384, 432, 480, 0}
    };

code Uint16 song_tab_frame_size_10 [2][16] =

    {/* 32 Khz MPEG1  */
      {0, 144, 180, 216, 252, 288, 360, 432, 504, 576, 720, 864, 1008, 1152, 1440, 0},
     /* 16 Khz MPEG2  */
      {0,  36, 72, 108, 144, 180, 216, 252, 288, 360, 432, 504, 576, 648, 720, 0}
    };
    

code Uint16 song_tab_seek [2][16]=
{
  {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0},
  {0,  8, 16, 24, 32, 40, 48, 56,  64,  80,  96, 112, 128, 144, 160, 0}
  
};


/*F**************************************************************************
* NAME: song_snd_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Sound control initialization
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Initializes the sound controls to their medium value
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_snd_init (void)
{
  dac_init();
  dac_set_vol(mp3_volume = VOLUME_MED);
  MP3BAS = BASS_MED;
  MP3MED = MEDIUM_MED;
  MP3TRE = TREBLE_MED;

  song_sound = SND_VOLUME;          /* volume control selected by default */
}



/*F**************************************************************************
* NAME: song_snd_inc
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Increment the selected sound control
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   The number of the current selected sound control is stored in the
*   variable snd_select (0.Volume; 1.Bass; 2.Medium; 3. Trebble)
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_snd_inc (void)
{
  switch (song_sound)
  {
    case SND_VOLUME:
    if (mp3_volume != VOLUME_MAX)
    {
        if ((MP3CON&MSK_MPBBST) && (MP3VOL > VOLUME_MED || MP3VOR > VOLUME_MED)) Mp3_clr_bass_boost(); /* should be less than -15dB */
        dac_set_vol(++mp3_volume);
      }
      break;

    case SND_BASS:
    {
      if (MP3BAS != BASS_MAX)
        MP3BAS++;
      break;
    }

    case SND_MEDIUM:
    {
      if (MP3MED != MEDIUM_MAX)
        MP3MED++;
      break;
    }

    case SND_TREBLE:
    {
      if (MP3TRE != TREBLE_MAX)
        MP3TRE++;
      break;
    }

    case SND_BBOOST:
    if(MP3VOL > VOLUME_MED || MP3VOR > VOLUME_MED) /* should be less than -15dB */
      dac_set_vol(VOLUME_MED);
    Mp3_set_bass_boost();
    break;
  }
}


/*F**************************************************************************
* NAME: song_snd_dec
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Decrement the selected sound control
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   The number of the current selected sound control is stored in the
*   variable snd_select (0.Volume; 1.Bass; 2.Medium; 3. Trebble)
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_snd_dec (void)
{
  switch (song_sound)
  {
    case SND_VOLUME:
    if (mp3_volume != VOLUME_MIN) dac_set_vol(--mp3_volume);
      break;

    case SND_BASS:
    {
      if (MP3BAS != BASS_MIN)
        MP3BAS--;
      break;
    }

    case SND_MEDIUM:
    {
      if (MP3MED != MEDIUM_MIN)
        MP3MED--;
      break;
    }

    case SND_TREBLE:
    {
      if (MP3TRE != TREBLE_MIN)
        MP3TRE--;
      break;
    }

    case SND_BBOOST:
    Mp3_clr_bass_boost();
    break;
  }
}


/*F**************************************************************************
* NAME: song_snd_select
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Select next sound control
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void song_snd_select (void)
{
  song_sound = (song_sound + 1) % NB_SOUND;
}


/*F**************************************************************************
* NAME: song_get_sound
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*   sound selected: SND_VOLUME, SND_BASS, SND_MEDIUM, SND_TREBLE
*----------------------------------------------------------------------------
* PURPOSE: 
*   Returns selected sound control
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Byte song_get_sound (void)
{
  return (song_sound);
}


/*F**************************************************************************
* NAME: song_get_level
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*   level of sound selected
*----------------------------------------------------------------------------
* PURPOSE:
*   Returns selected sound level
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Byte song_get_level (void)
{
  switch (song_sound)
  {
    case SND_VOLUME: return mp3_volume;
    case SND_BASS:   return MP3BAS;
    case SND_MEDIUM: return MP3MED;
    case SND_TREBLE: return MP3TRE;
    case SND_BBOOST: return (MP3CON&MSK_MPBBST)?1:0;
  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美一区二区三区乱码| 欧洲亚洲国产日韩| 亚洲精品在线网站| 国产乱子轮精品视频| 国产欧美日产一区| 色婷婷av一区二区三区软件| 亚洲一区二区在线播放相泽| 欧美一卡2卡三卡4卡5免费| 精品亚洲国产成人av制服丝袜 | 欧美嫩在线观看| 日本午夜一本久久久综合| 欧美va在线播放| 成人精品一区二区三区四区| 亚洲黄色片在线观看| 日韩欧美在线网站| 成人av资源下载| 日韩制服丝袜av| 国产女人18毛片水真多成人如厕| 一本大道综合伊人精品热热| 日本伊人色综合网| 国产欧美一区二区精品秋霞影院| 97超碰欧美中文字幕| 亚洲成a人v欧美综合天堂| 精品国产网站在线观看| 97久久精品人人澡人人爽| 日韩精品亚洲一区二区三区免费| 久久精品一区蜜桃臀影院| 91黄色激情网站| 国内精品久久久久影院色| 亚洲视频免费在线观看| 精品免费国产二区三区| 97久久超碰精品国产| 久久er精品视频| 樱花影视一区二区| 日韩欧美一区在线| 99久久精品免费观看| 理论片日本一区| 一区二区在线看| 久久亚洲精品小早川怜子| 欧美在线free| 国产不卡在线一区| 日韩av不卡一区二区| 亚洲视频免费在线观看| 精品区一区二区| 欧美日韩高清影院| 91一区二区三区在线观看| 美国精品在线观看| 亚洲一区二区中文在线| 成人欧美一区二区三区白人| 日韩亚洲欧美一区| 欧美色图在线观看| aaa欧美大片| 国产一区二区三区观看| 蜜桃av噜噜一区| 亚洲国产成人av| 亚洲伦理在线精品| 日韩理论电影院| 中文字幕 久热精品 视频在线 | 亚洲国产精品一区二区久久恐怖片| 久久久精品日韩欧美| 日韩免费观看高清完整版| 欧美性猛片aaaaaaa做受| 一本色道亚洲精品aⅴ| 成人精品gif动图一区| 国产精品18久久久久久久网站| 蜜臀av一区二区| 日韩主播视频在线| 天堂一区二区在线| 亚洲r级在线视频| 亚洲午夜免费福利视频| 一区二区三区资源| 有坂深雪av一区二区精品| 18欧美亚洲精品| 国产精品白丝在线| 国产精品三级电影| 国产精品萝li| 国产精品久久久久久亚洲伦 | 7777女厕盗摄久久久| 欧美色综合久久| 欧美日韩电影一区| 欧美久久久久久久久久| 欧美一区二区在线看| 日韩欧美一二三四区| 日韩欧美在线不卡| 精品国产乱码久久久久久久久| 欧美一区二区免费| 久久美女艺术照精彩视频福利播放 | 国产精品久久久久久久久免费桃花 | 中文字幕av一区二区三区免费看 | 国产高清精品网站| 国产精品69毛片高清亚洲| 丁香一区二区三区| 99久久精品国产毛片| 色婷婷综合久久久久中文| 在线观看国产日韩| 9191成人精品久久| 精品99999| 国产精品欧美一级免费| 一区二区三区四区激情| 午夜精品视频一区| 国内不卡的二区三区中文字幕| 大胆亚洲人体视频| 在线观看国产91| 日韩三级高清在线| 国产精品国产三级国产aⅴ无密码| 亚洲欧美日韩中文字幕一区二区三区| 亚洲一区在线播放| 精品亚洲porn| 成人教育av在线| 欧美精品v国产精品v日韩精品| 精品免费国产一区二区三区四区| 国产精品无码永久免费888| 亚洲一区二区四区蜜桃| 激情图区综合网| 色婷婷av一区二区三区大白胸| 日韩欧美一区电影| 亚洲人成电影网站色mp4| 免费成人美女在线观看.| 播五月开心婷婷综合| 欧美一区二区在线视频| 国产精品福利av| 麻豆国产欧美一区二区三区| av一区二区久久| 日韩欧美国产综合一区| 亚洲色图清纯唯美| 国产一区二区在线看| 欧美性高清videossexo| 久久久久久久久久久99999| 亚洲国产综合视频在线观看| 国产成人在线色| 欧美一区二区啪啪| 亚洲女爱视频在线| 日日欢夜夜爽一区| 色综合天天视频在线观看| 精品国偷自产国产一区| 亚洲高清在线精品| 91在线丨porny丨国产| 国产喂奶挤奶一区二区三区| 人人精品人人爱| 日本乱人伦aⅴ精品| 国产目拍亚洲精品99久久精品| 日韩**一区毛片| 99热国产精品| 久久精品人人爽人人爽| 日本大胆欧美人术艺术动态| av不卡一区二区三区| 久久精品欧美日韩精品| 久久精品国产在热久久| 欧美日韩黄色一区二区| 亚洲美女视频一区| 成人av综合一区| 欧美国产成人精品| 国产精品一区二区无线| 欧美成人激情免费网| 日韩电影免费在线看| 欧美图片一区二区三区| 一区二区三区在线观看视频| 丁香啪啪综合成人亚洲小说| 久久嫩草精品久久久精品| 激情深爱一区二区| 欧美精品一区二区三| 久久精品国产亚洲5555| 日韩免费在线观看| 精品制服美女丁香| 91精品国产黑色紧身裤美女| 亚洲r级在线视频| 欧美丰满美乳xxx高潮www| 亚欧色一区w666天堂| 正在播放一区二区| 青青草国产成人av片免费| 欧美人体做爰大胆视频| 日产国产欧美视频一区精品| 9191精品国产综合久久久久久| 日本免费新一区视频| 欧美xxx久久| 国产精品123| 中国色在线观看另类| 一本一本久久a久久精品综合麻豆| 亚洲激情第一区| 欧美精品久久久久久久多人混战| 青青草视频一区| 久久午夜免费电影| 国产丶欧美丶日本不卡视频| 国产精品伦理在线| 色猫猫国产区一区二在线视频| 亚洲成人动漫精品| 欧美精品一区二区三区在线| 福利91精品一区二区三区| 亚洲视频每日更新| 在线不卡的av| 看片的网站亚洲| 中文字幕乱码久久午夜不卡 | 中文字幕国产精品一区二区| 色综合视频一区二区三区高清| 天堂在线一区二区| 欧美经典一区二区| 欧美优质美女网站| 狠狠色丁香久久婷婷综合_中| 中文字幕一区二区三区视频 | 欧美成人一区二区三区片免费 |