wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3779|回復: 3
打印 上一主題 下一主題
收起左側

stm32f103RCt6 驅動ADAU1701DSP源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:511543 發表于 2020-1-15 09:27 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
#ifndef _ADAU1701_H
#define _ADAU1701_H

#include "stm32f10x.h"  
#include "sys.h"  

#define ADAU1701_I2C_WR    0        /* 寫控制bit */
#define ADAU1701_I2C_RD    1        /* 讀控制bit */

#define   ClockSpeed            100000
typedef   unsigned short       ADI_DATA_U16;
typedef   const int            ADI_REG_TYPE;                    //define data storing in flash.

#define   DEVICE_ADDR_         0x68                   //設備地址
#define   Address_Length          2                        //define address as 16bit. //define address as 16bit.

#define   SIGMASTUDIOTYPE_FIXPOINT      0
#define   SIGMASTUDIOTYPE_INTEGER       1

/*
* 閱讀設備寄存器
*/
#define SIGMA_READ_REGISTER( devAddress, address, length, pData ) {/*TODO: implement macro or define as function*/}

/*
* 設置寄存器字段的值
*/
#define SIGMA_SET_REGSITER_FIELD( regVal, fieldVal, fieldMask, fieldShift )  \
        { (regVal) = (((regVal) & (~(fieldMask))) | (((fieldVal) << (fieldShift)) && (fieldMask))) }
  
/*
* 獲取寄存器字段的值
*/
#define SIGMA_GET_REGSITER_FIELD( regVal, fieldMask, fieldShift )  \
        { ((regVal) & (fieldMask)) >> (fieldShift) }

/*
  將浮點值轉換為SigmaDSP(5.23)定點格式,此可選宏用于具有特殊實現的系統
*/
#define SIGMASTUDIOTYPE_FIXPOINT_CONVERT( _value ) {/*TODO: IMPLEMENT MACRO*/}

/*
* Convert integer data to system compatible format
*    This optional macro is intended for systems having special implementation
*    requirements (for example: limited memory size or endianness)
*/
#define SIGMASTUDIOTYPE_INTEGER_CONVERT( _value ) {/*TODO: IMPLEMENT MACRO*/}


#define ADAU1701_GPIO_PORT_I2C      GPIOB                          /* GPIO端口 */
#define ADAU1701_RCC_I2C_PORT       RCC_APB2Periph_GPIOB        /* GPIO端口時鐘 */
#define ADAU1701_I2C_SCL_PIN          GPIO_Pin_10            /* 連接到SCL時鐘線的GPIO */
#define ADAU1701_I2C_SDA_PIN          GPIO_Pin_11            /* 連接到SDA數據線的GPIO */

#define ADAU1701_I2C_SCL_1()  GPIO_SetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SCL_PIN)          /* SCL = 1 */
#define ADAU1701_I2C_SCL_0()  GPIO_ResetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SCL_PIN)        /* SCL = 0 */
   
#define ADAU1701_I2C_SDA_1()  GPIO_SetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SDA_PIN)          /* SDA = 1 */
#define ADAU1701_I2C_SDA_0()  GPIO_ResetBits(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SDA_PIN)        /* SDA = 0 */

#define ADAU1701_I2C_SDA_READ()  GPIO_ReadInputDataBit(ADAU1701_GPIO_PORT_I2C, ADAU1701_I2C_SDA_PIN)    /* 讀SDA口線狀態 */

void i2c_CfgGpio(void);                   //I2C 引腳配置
void i2c_Start(void);                     //開始信號
void i2c_Stop(void);                      //結束信號
void i2c_SendByte(uint8_t _ucByte);       //發送一個字節
uint8_t i2c_ReadByte(void);               //接收一個字節
uint8_t i2c_WaitAck(void);                //等待應答
void i2c_Ack(void);                       //應答
void i2c_NAck(void);                      //非應答
uint8_t i2c_CheckDevice(uint8_t _Address);//檢查設備地址是否存在


void SIGMA_WRITE_REGISTER_BLOCK(int devAddress, int address, int length, const ADI_REG_TYPE *pData ) ;  // 向寄存器寫一塊數據
void SIGMA_SAFELOAD_WRITE_REGISTER(int devAddress, int address, int length, const ADI_REG_TYPE *pData ) ;

void MASTER_MUTE_download(void);   // 靜音
void MASTER_UNMUTE_download(void); // 取消靜音

// 調節bass
void BASS0_download(void);   // 調 bass 為 0
void BASS1_download(void);   // 調 bass 為 +1
void BASS2_download(void);   // 調 bass 為 +2
void BASS3_download(void);   // 調 bass 為 +3
void BASS4_download(void);   // 調 bass 為 +4
void BASS5_download(void);   // 調 bass 為 +5
void BASS6_download(void);   // 調 bass 為 +6
void BASS7_download(void);   // 調 bass 為 +7
void BASS8_download(void);   // 調 bass 為 +8
void BASS9_download(void);   // 調 bass 為 +9
void BASS10_download(void);  // 調 bass 為 +10
void BASS_1_download(void);  // 調 bass 為 -1
void BASS_2_download(void);  // 調 bass 為 -2
void BASS_3_download(void);  // 調 bass 為 -3
void BASS_4_download(void);  // 調 bass 為 -4
void BASS_5_download(void);  // 調 bass 為 -5
void BASS_6_download(void);  // 調 bass 為 -6
void BASS_7_download(void);  // 調 bass 為 -7
void BASS_8_download(void);  // 調 bass 為 -8
void BASS_9_download(void);  // 調 bass 為 -9
void BASS_10_download(void); // 調 bass 為 -10

// 調節Treble
void TRE0_download(void);    // 調 Treble 為 0
void TRE1_download(void);    // 調 Treble 為 +1
void TRE2_download(void);    // 調 Treble 為 +2
void TRE3_download(void);    // 調 Treble 為 +3
void TRE4_download(void);    // 調 Treble 為 +4
void TRE5_download(void);    // 調 Treble 為 +5
void TRE6_download(void);    // 調 Treble 為 +6
void TRE7_download(void);    // 調 Treble 為 +7
void TRE8_download(void);    // 調 Treble 為 +8
void TRE9_download(void);    // 調 Treble 為 +9
void TRE10_download(void);   // 調 Treble 為 +10
void TRE_1_download(void);   // 調 Treble 為 -1
void TRE_2_download(void);   // 調 Treble 為 -2
void TRE_3_download(void);   // 調 Treble 為 -3
void TRE_4_download(void);   // 調 Treble 為 -4
void TRE_5_download(void);   // 調 Treble 為 -5
void TRE_6_download(void);   // 調 Treble 為 -6
void TRE_7_download(void);   // 調 Treble 為 -7
void TRE_8_download(void);   // 調 Treble 為 -8
void TRE_9_download(void);   // 調 Treble 為 -9
void TRE_10_download(void);  // 調 Treble 為 -10


#endif

#include "adau1701.h"


/*
*********************************************************************************************************
*    函 數 名: i2c_CfgGpio
*    功能說明: 配置I2C總線的GPIO,采用模擬IO的方式實現
*    形    參:無
*    返 回 值: 無
*********************************************************************************************************
*/
void i2c_CfgGpio(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(ADAU1701_RCC_I2C_PORT, ENABLE);    /* 打開GPIO時鐘 */

        GPIO_InitStructure.GPIO_Pin = ADAU1701_I2C_SCL_PIN | ADAU1701_I2C_SDA_PIN;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;        /* 開漏輸出 */
        GPIO_Init(ADAU1701_GPIO_PORT_I2C, &GPIO_InitStructure);
        /* 給一個停止信號, 復位I2C總線上的所有設備到待機模式 */
        i2c_Stop();
}

static void i2c_Delay(void)  // i2c 延時
{
        uint8_t i;
    /* 
         下面的時間是通過邏輯分析儀測試得到的。
    工作條件:CPU主頻72MHz ,MDK編譯環境,1級優化
  
        循環次數為10時,SCL頻率 = 205KHz
        循環次數為7時,SCL頻率 = 347KHz, SCL高電平時間1.5us,SCL低電平時間2.87us
         循環次數為5時,SCL頻率 = 421KHz, SCL高電平時間1.25us,SCL低電平時間2.375us
    */
        for (i = 0; i < 10; i++);
}

/*
*********************************************************************************************************
*    函 數 名: i2c_Start
*    功能說明: CPU發起I2C總線啟動信號
*    形    參:無
*    返 回 值: 無
*********************************************************************************************************
*/
void i2c_Start(void)
{
    /* 當SCL高電平時,SDA出現一個下跳沿表示I2C總線啟動信號 */
    ADAU1701_I2C_SDA_1();
    ADAU1701_I2C_SCL_1();
    i2c_Delay();
    ADAU1701_I2C_SDA_0();
    i2c_Delay();
    ADAU1701_I2C_SCL_0(); // 牽住時鐘線,準備發送數據
    i2c_Delay();
}

/*
*********************************************************************************************************
*    函 數 名: i2c_Start
*    功能說明: CPU發起I2C總線停止信號
*    形    參:無
*    返 回 值: 無
*********************************************************************************************************
*/
void i2c_Stop(void)
{
    /* 當SCL高電平時,SDA出現一個上跳沿表示I2C總線停止信號 */
    ADAU1701_I2C_SDA_0();
    ADAU1701_I2C_SCL_1();
    i2c_Delay();
    ADAU1701_I2C_SDA_1();
}

/*
*********************************************************************************************************
*    函 數 名: i2c_WaitAck
*    功能說明: CPU產生一個時鐘,并讀取器件的ACK應答信號
*    形    參:無
*    返 回 值: 返回0表示正確應答,1表示無器件響應
*********************************************************************************************************
*/
uint8_t i2c_WaitAck(void)
{
    uint8_t re;

    ADAU1701_I2C_SDA_1();    /* CPU釋放SDA總線 */
    i2c_Delay();
    ADAU1701_I2C_SCL_1();    /* CPU驅動SCL = 1, 此時器件會返回ACK應答 */
    i2c_Delay();
    if (ADAU1701_I2C_SDA_READ())    /* CPU讀取SDA口線狀態 */
    {
        re = 1;
    }
    else
    {
        re = 0;
    }
    ADAU1701_I2C_SCL_0();
    i2c_Delay();
    return re;
}

/*
*********************************************************************************************************
*    函 數 名: i2c_Ack
*    功能說明: CPU產生一個ACK信號
*    形    參:無
*    返 回 值: 無
*********************************************************************************************************
*/
void i2c_Ack(void)
{
    ADAU1701_I2C_SDA_0();    /* CPU驅動SDA = 0 */
    i2c_Delay();
    ADAU1701_I2C_SCL_1();    /* CPU產生1個時鐘 */
    i2c_Delay();
    ADAU1701_I2C_SCL_0();
    i2c_Delay();
    ADAU1701_I2C_SDA_1();    /* CPU釋放SDA總線 */
}

/*
*********************************************************************************************************
*    函 數 名: i2c_NAck
*    功能說明: CPU產生1個NACK信號
*    形    參:無
*    返 回 值: 無
*********************************************************************************************************
*/
void i2c_NAck(void)
{
    ADAU1701_I2C_SDA_1();    /* CPU驅動SDA = 1 */
    i2c_Delay();
    ADAU1701_I2C_SCL_1();    /* CPU產生1個時鐘 */
    i2c_Delay();
    ADAU1701_I2C_SCL_0();
    i2c_Delay();   
}

/*
*********************************************************************************************************
*    函 數 名: i2c_SendByte
*    功能說明: CPU向I2C總線設備發送8bit數據
*    形    參:_ucByte : 等待發送的字節
*    返 回 值: 無
*********************************************************************************************************
*/
void i2c_SendByte(uint8_t _ucByte)
{
    uint8_t i;

    /* 先發送字節的高位bit7 */
    for (i = 0; i < 8; i++)
    {        
        if (_ucByte & 0x80)
        {
            ADAU1701_I2C_SDA_1();
        }
        else
        {
            ADAU1701_I2C_SDA_0();
        }
        i2c_Delay();
        ADAU1701_I2C_SCL_1();
        i2c_Delay();   
        ADAU1701_I2C_SCL_0();
        if (i == 7)
        {
             ADAU1701_I2C_SDA_1(); // 釋放總線
        }
        _ucByte <<= 1;    /* 左移一個bit */
        i2c_Delay();
    }
}

/*
*********************************************************************************************************
*    函 數 名: i2c_ReadByte
*    功能說明: CPU從I2C總線設備讀取8bit數據
*    形    參:無
*    返 回 值: 讀到的數據
*********************************************************************************************************
*/
uint8_t i2c_ReadByte(void)
{
    uint8_t i;
    uint8_t value;

    /* 讀到第1個bit為數據的bit7 */
    value = 0;
    for (i = 0; i < 8; i++)
    {
        value <<= 1;
        ADAU1701_I2C_SCL_1();
        i2c_Delay();
        if (ADAU1701_I2C_SDA_READ())
        {
            value++;
        }
        ADAU1701_I2C_SCL_0();
        i2c_Delay();
    }
    return value;
}

/*
*********************************************************************************************************
*    函 數 名: i2c_CheckDevice
*    功能說明: 檢測I2C總線設備,CPU向發送設備地址,然后讀取設備應答來判斷該設備是否存在
*    形    參:_Address:設備的I2C總線地址
*    返 回 值: 返回值 0 表示正確, 返回1表示未探測到
*********************************************************************************************************
*/
uint8_t i2c_CheckDevice(uint8_t _Address)
{
   
    uint8_t ucAck;
    i2c_CfgGpio();        /* 配置GPIO */
    i2c_Start();        /* 發送啟動信號 */
    /* 發送設備地址+讀寫控制bit(0 = w, 1 = r) bit7 先傳 */
    i2c_SendByte(_Address | ADAU1701_I2C_WR);
    ucAck = i2c_WaitAck();    /* 檢測設備的ACK應答 */
    i2c_Stop();            /* 發送停止信號 */
    return ucAck;
}


void SIGMA_WRITE_REGISTER_BLOCK(int devAddress, int address, int length, const ADI_REG_TYPE *pData )
{
        uint8_t subaddress0;
        uint8_t subaddress1;
        uint16_t i;
        subaddress0 = (address & 0xFF00)>>8;
        subaddress1 = address & 0x00FF;
        
        i2c_Start();
        i2c_SendByte(devAddress);    // 設備地址
        i2c_WaitAck();               // 等待應答
        i2c_SendByte(subaddress0);   // 寄存器高位地址
        i2c_WaitAck();               // 等待應答
        i2c_SendByte(subaddress1);   // 寄存器地位地址
        i2c_WaitAck();               // 等待應答
        for(i=0;i<length;i++)
        {
            i2c_SendByte(pData[i]);   // 發送數據
            i2c_WaitAck();            // 等待應答
        }
        i2c_Stop();
}

/*
*        ADAU1701 Sigmastudio Safeload
*        step 1. write target address to safeload address register, address start with 0x0815.
*        step 2. write target data to safeload data register, address start with 0x0810.
*        step 3. set bit IST in DSP CORE control register, address 0x081c, to inital safeload transmitter.
*/
void SIGMA_SAFELOAD_WRITE_REGISTER(int devAddress, int address, int length, const ADI_REG_TYPE *pData )
{
    uint8_t subaddress0;
    uint8_t subaddress1;
//    uint16_t i=0;
    static uint16_t f = 0;        //set flag for triggering safeload transmite, after finished load 5 safeload data register.
    subaddress0 = (address & 0xFF00)>>8;
  subaddress1 = address & 0x00FF;
   
        // write target data to 0x0810
        i2c_Start();
        i2c_SendByte(devAddress);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x08);
        i2c_WaitAck();            // 等待應答   
        i2c_SendByte(0x10+f);
        i2c_WaitAck();            // 等待應答
        //number of prarameter need to loading, length need offset -2? deal with while length >5?
        i2c_SendByte(0x00);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(pData[0]);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(pData[1]);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(pData[2]);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(pData[3]);
        i2c_WaitAck();            // 等待應答
        i2c_Stop();
        // write     target address to safeload address register start with 0x0815
        i2c_Start();
        i2c_SendByte(devAddress);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x08);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x15+f);
      i2c_WaitAck();            // 等待應答
        i2c_SendByte(subaddress0);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(subaddress1);
        i2c_WaitAck();            // 等待應答
      i2c_Stop();
   
// trigger safeload transmitter.
    f++;
    if(f == 5)
    {
        uint8_t recv0;
        uint8_t recv1;
        f = 0;
        i2c_Start();
        i2c_SendByte(devAddress);   
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x08);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x1C);
        i2c_WaitAck();            // 等待應答
      i2c_Start();
        i2c_SendByte(devAddress+1);   
        i2c_WaitAck();            // 等待應答
        recv0 = i2c_ReadByte();
        i2c_Ack();
        recv1 = i2c_ReadByte();
        i2c_Stop();                        // read data from DSP CORE control register.
        
        recv1 = recv1 | 0x20    ;    // set bit IST to trigger safeload.

        i2c_Start();                        // send data to DSP CORE control register.
        i2c_SendByte(devAddress);   
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x08);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(0x1c);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(recv0);
        i2c_WaitAck();            // 等待應答
        i2c_SendByte(recv1);
        i2c_WaitAck();            // 等待應答
        i2c_Stop();
            
    }
}





//靜音
ADI_REG_TYPE MASTER_MUTE_0[4] = {0x00, 0x00, 0x00, 0x00};
void MASTER_MUTE_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x003D, 4, MASTER_MUTE_0);            /* MuteNoSlewAlg1mute */
}

//取消靜音
ADI_REG_TYPE MASTER_UNMUTE_0[4] = {0x00, 0x80, 0x00, 0x00};
void MASTER_UNMUTE_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x003D, 4, MASTER_UNMUTE_0);            /* MuteNoSlewAlg1mute */
}


/*****************************************音量調節**********************************************/

// 調 bass 為 0
ADI_REG_TYPE BASS0_0[4] = {0xFF, 0xBB, 0x10, 0x41};
ADI_REG_TYPE BASS0_1[4] = {0x00, 0x35, 0xFF, 0xDB};
ADI_REG_TYPE BASS0_2[4] = {0x00, 0x10, 0x0D, 0xE0};
ADI_REG_TYPE BASS0_3[4] = {0x00, 0xA8, 0x6F, 0xB3};
ADI_REG_TYPE BASS0_4[4] = {0xFF, 0xD6, 0x72, 0x52};
void BASS0_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS0_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS0_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS0_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS0_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS0_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +1
ADI_REG_TYPE BASS1_0[4] = {0xFF, 0xBB, 0x10, 0x57};
ADI_REG_TYPE BASS1_1[4] = {0x00, 0x36, 0x0D, 0x40};
ADI_REG_TYPE BASS1_2[4] = {0x00, 0x10, 0x10, 0xF3};
ADI_REG_TYPE BASS1_3[4] = {0x00, 0xA8, 0x88, 0x0D};
ADI_REG_TYPE BASS1_4[4] = {0xFF, 0xD6, 0x6A, 0x4F};
void BASS1_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS1_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS1_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS1_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS1_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS1_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +2
ADI_REG_TYPE BASS2_0[4] = {0xFF, 0xBB, 0x10, 0x6D};
ADI_REG_TYPE BASS2_1[4] = {0x00, 0x36, 0x1A, 0x91};
ADI_REG_TYPE BASS2_2[4] = {0x00, 0x10, 0x14, 0x01};
ADI_REG_TYPE BASS2_3[4] = {0x00, 0xA8, 0xA0, 0x43};
ADI_REG_TYPE BASS2_4[4] = {0xFF, 0xD6, 0x62, 0x59};
void BASS2_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS2_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS2_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS2_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS2_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS2_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +3
ADI_REG_TYPE BASS3_0[4] = {0xFF, 0xBB, 0x10, 0x83};
ADI_REG_TYPE BASS3_1[4] = {0x00, 0x36, 0x27, 0xB9};
ADI_REG_TYPE BASS3_2[4] = {0x00, 0x10, 0x17, 0x06};
ADI_REG_TYPE BASS3_3[4] = {0x00, 0xA8, 0xB8, 0x2D};
ADI_REG_TYPE BASS3_4[4] = {0xFF, 0xD6, 0x5A, 0x7B};
void BASS3_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS3_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS3_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS3_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS3_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS3_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +4
ADI_REG_TYPE BASS4_0[4] = {0xFF, 0xBB, 0x10, 0x99};
ADI_REG_TYPE BASS4_1[4] = {0x00, 0x36, 0x34, 0xA1};
ADI_REG_TYPE BASS4_2[4] = {0x00, 0x10, 0x19, 0xFC};
ADI_REG_TYPE BASS4_3[4] = {0x00, 0xA8, 0xCF, 0xA3};
ADI_REG_TYPE BASS4_4[4] = {0xFF, 0xD6, 0x52, 0xC4};
void BASS4_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS4_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS4_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS4_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS4_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS4_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +5
ADI_REG_TYPE BASS5_0[4] = {0xFF, 0x81, 0xAA, 0xED};
ADI_REG_TYPE BASS5_1[4] = {0x00, 0x91, 0x19, 0x61};
ADI_REG_TYPE BASS5_2[4] = {0xFF, 0xEF, 0x16, 0x44};
ADI_REG_TYPE BASS5_3[4] = {0x00, 0x8F, 0xA6, 0xA8};
ADI_REG_TYPE BASS5_4[4] = {0xFF, 0xEF, 0x4E, 0x79};
void BASS5_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS5_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS5_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS5_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS5_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS5_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +6
ADI_REG_TYPE BASS6_0[4] = {0xFF, 0xBB, 0x10, 0xC2};
ADI_REG_TYPE BASS6_1[4] = {0x00, 0x36, 0x4D, 0x67};
ADI_REG_TYPE BASS6_2[4] = {0x00, 0x10, 0x1F, 0xAC};
ADI_REG_TYPE BASS6_3[4] = {0x00, 0xA8, 0xFC, 0xAE};
ADI_REG_TYPE BASS6_4[4] = {0xFF, 0xD6, 0x43, 0xF3};
void  BASS6_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS6_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS6_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS6_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS6_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS6_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +7
ADI_REG_TYPE BASS7_0[4] = {0xFF, 0xBB, 0x10, 0xD5};
ADI_REG_TYPE BASS7_1[4] = {0x00, 0x36, 0x59, 0x26};
ADI_REG_TYPE BASS7_2[4] = {0x00, 0x10, 0x22, 0x5E};
ADI_REG_TYPE BASS7_3[4] = {0x00, 0xA9, 0x12, 0x08};
ADI_REG_TYPE BASS7_4[4] = {0xFF, 0xD6, 0x3C, 0xED};
void  BASS7_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS7_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS7_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS7_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS7_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS7_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 +8
ADI_REG_TYPE BASS8_0[4] = {0xFF, 0xBB, 0x10, 0xE8};
ADI_REG_TYPE BASS8_1[4] = {0x00, 0x36, 0x64, 0x65};
ADI_REG_TYPE BASS8_2[4] = {0x00, 0x10, 0x24, 0xF3};
ADI_REG_TYPE BASS8_3[4] = {0x00, 0xA9, 0x26, 0x7A};
ADI_REG_TYPE BASS8_4[4] = {0xFF, 0xD6, 0x36, 0x34};
void  BASS8_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS8_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS8_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS8_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS8_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS8_4);            /* EQ1940Dual12A1 */
}
// 調 bass 為 +9
ADI_REG_TYPE BASS9_0[4] = {0xFF, 0xBB, 0x10, 0xFA};
ADI_REG_TYPE BASS9_1[4] = {0x00, 0x36, 0x6F, 0x1A};
ADI_REG_TYPE BASS9_2[4] = {0x00, 0x10, 0x27, 0x68};
ADI_REG_TYPE BASS9_3[4] = {0x00, 0xA9, 0x39, 0xF2};
ADI_REG_TYPE BASS9_4[4] = {0xFF, 0xD6, 0x2F, 0xCC};
void  BASS9_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS9_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS9_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS9_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS9_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS9_4);            /* EQ1940Dual12A1 */
}
// 調 bass 為 +10
ADI_REG_TYPE BASS10_0[4] = {0xFF, 0xBB, 0x11, 0x0B};
ADI_REG_TYPE BASS10_1[4] = {0x00, 0x36, 0x79, 0x3F};
ADI_REG_TYPE BASS10_2[4] = {0x00, 0x10, 0x29, 0xBC};
ADI_REG_TYPE BASS10_3[4] = {0x00, 0xA9, 0x4C, 0x63};
ADI_REG_TYPE BASS10_4[4] = {0xFF, 0xD6, 0x29, 0xBC};
void  BASS10_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS10_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS10_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS10_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS10_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS10_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -1
ADI_REG_TYPE BASS_1_0[4] = {0xFF, 0xBB, 0x10, 0x2B};
ADI_REG_TYPE BASS_1_1[4] = {0x00, 0x35, 0xF2, 0x78};
ADI_REG_TYPE BASS_1_2[4] = {0x00, 0x10, 0x0A, 0xCD};
ADI_REG_TYPE BASS_1_3[4] = {0x00, 0xA8, 0x57, 0x5D};
ADI_REG_TYPE BASS_1_4[4] = {0xFF, 0xD6, 0x7A, 0x53};
void BASS_1_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_1_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_1_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_1_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_1_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_1_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -2
ADI_REG_TYPE BASS_2_0[4] = {0xFF, 0xBB, 0x10, 0x15};
ADI_REG_TYPE BASS_2_1[4] = {0x00, 0x35, 0xE5, 0x2E};
ADI_REG_TYPE BASS_2_2[4] = {0x00, 0x10, 0x07, 0xC1};
ADI_REG_TYPE BASS_2_3[4] = {0x00, 0xA8, 0x3F, 0x34};
ADI_REG_TYPE BASS_2_4[4] = {0xFF, 0xD6, 0x82, 0x45};
void BASS_2_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_2_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_2_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_2_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_2_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_2_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -3
ADI_REG_TYPE BASS_3_0[4] = {0xFF, 0xBB, 0x0F, 0xFF};
ADI_REG_TYPE BASS_3_1[4] = {0x00, 0x35, 0xD8, 0x14};
ADI_REG_TYPE BASS_3_2[4] = {0x00, 0x10, 0x04, 0xBF};
ADI_REG_TYPE BASS_3_3[4] = {0x00, 0xA8, 0x27, 0x62};
ADI_REG_TYPE BASS_3_4[4] = {0xFF, 0xD6, 0x8A, 0x1B};
void BASS_3_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_3_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_3_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_3_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_3_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_3_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -4
ADI_REG_TYPE BASS_4_0[4] = {0xFF, 0xBB, 0x0F, 0xEA};
ADI_REG_TYPE BASS_4_1[4] = {0x00, 0x35, 0xCB, 0x3D};
ADI_REG_TYPE BASS_4_2[4] = {0x00, 0x10, 0x01, 0xCC};
ADI_REG_TYPE BASS_4_3[4] = {0x00, 0xA8, 0x10, 0x0A};
ADI_REG_TYPE BASS_4_4[4] = {0xFF, 0xD6, 0x91, 0xC9};
void BASS_4_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_4_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_4_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_4_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_4_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_4_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -5
ADI_REG_TYPE BASS_5_0[4] = {0xFF, 0xBB, 0x0F, 0xD5};
ADI_REG_TYPE BASS_5_1[4] = {0x00, 0x35, 0xBE, 0xBD};
ADI_REG_TYPE BASS_5_2[4] = {0x00, 0x0F, 0xFE, 0xEE};
ADI_REG_TYPE BASS_5_3[4] = {0x00, 0xA7, 0xF9, 0x50};
ADI_REG_TYPE BASS_5_4[4] = {0xFF, 0xD6, 0x99, 0x42};
void BASS_5_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_5_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_5_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_5_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_5_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_5_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -6
ADI_REG_TYPE BASS_6_0[4] = {0xFF, 0xBB, 0x0F, 0xC1};
ADI_REG_TYPE BASS_6_1[4] = {0x00, 0x35, 0xB2, 0xA4};
ADI_REG_TYPE BASS_6_2[4] = {0x00, 0x0F, 0xFC, 0x27};
ADI_REG_TYPE BASS_6_3[4] = {0x00, 0xA7, 0xE3, 0x52};
ADI_REG_TYPE BASS_6_4[4] = {0xFF, 0xD6, 0xA0, 0x7E};
void BASS_6_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_6_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_6_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_6_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_6_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_6_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -7
ADI_REG_TYPE BASS_7_0[4] = {0xFF, 0xBB, 0x0F, 0xAD};
ADI_REG_TYPE BASS_7_1[4] = {0x00, 0x35, 0xA7, 0x01};
ADI_REG_TYPE BASS_7_2[4] = {0x00, 0x0F, 0xF9, 0x7B};
ADI_REG_TYPE BASS_7_3[4] = {0x00, 0xA7, 0xCE, 0x2B};
ADI_REG_TYPE BASS_7_4[4] = {0xFF, 0xD6, 0xA7, 0x73};
void BASS_7_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_7_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_7_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_7_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_7_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_7_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -8
ADI_REG_TYPE BASS_8_0[4] = {0xFF, 0xBB, 0x0F, 0x9B};
ADI_REG_TYPE BASS_8_1[4] = {0x00, 0x35, 0x9B, 0xE1};
ADI_REG_TYPE BASS_8_2[4] = {0x00, 0x0F, 0xF6, 0xEE};
ADI_REG_TYPE BASS_8_3[4] = {0x00, 0xA7, 0xB9, 0xF1};
ADI_REG_TYPE BASS_8_4[4] = {0xFF, 0xD6, 0xAE, 0x1A};
void BASS_8_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_8_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_8_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_8_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_8_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_8_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -9
ADI_REG_TYPE BASS_9_0[4] = {0xFF, 0xBB, 0x0F, 0x89};
ADI_REG_TYPE BASS_9_1[4] = {0x00, 0x35, 0x91, 0x4B};
ADI_REG_TYPE BASS_9_2[4] = {0x00, 0x0F, 0xF4, 0x80};
ADI_REG_TYPE BASS_9_3[4] = {0x00, 0xA7, 0xA6, 0xB3};
ADI_REG_TYPE BASS_9_4[4] = {0xFF, 0xD6, 0xB4, 0x6E};
void BASS_9_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_9_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_9_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_9_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_9_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_9_4);            /* EQ1940Dual12A1 */
}

// 調 bass 為 -10
ADI_REG_TYPE BASS_10_0[4] = {0xFF, 0xBB, 0x0F, 0x79};
ADI_REG_TYPE BASS_10_1[4] = {0x00, 0x35, 0x87, 0x48};
ADI_REG_TYPE BASS_10_2[4] = {0x00, 0x0F, 0xF2, 0x33};
ADI_REG_TYPE BASS_10_3[4] = {0x00, 0xA7, 0x94, 0x7F};
ADI_REG_TYPE BASS_10_4[4] = {0xFF, 0xD6, 0xBA, 0x6B};
void BASS_10_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, BASS_10_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, BASS_10_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, BASS_10_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, BASS_10_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, BASS_10_4);            /* EQ1940Dual12A1 */
}

/*****************************************調節Treble**********************************************/
// 調 Treble 為 0
ADI_REG_TYPE TRE0_0[4] = {0xFF, 0x81, 0xAA, 0x26};
ADI_REG_TYPE TRE0_1[4] = {0x00, 0x90, 0xA1, 0xE3};
ADI_REG_TYPE TRE0_2[4] = {0xFF, 0xEF, 0x26, 0x03};
ADI_REG_TYPE TRE0_3[4] = {0x00, 0x8F, 0x2F, 0xD7};
ADI_REG_TYPE TRE0_4[4] = {0xFF, 0xEF, 0x5E, 0x1D};
void TRE0_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE0_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE0_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE0_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE0_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE0_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 1
ADI_REG_TYPE TRE1_0[4] = {0xFF, 0x79, 0x2A, 0xD9};
ADI_REG_TYPE TRE1_1[4] = {0x00, 0x9E, 0x0C, 0xB1};
ADI_REG_TYPE TRE1_2[4] = {0xFF, 0xEA, 0x46, 0xF3};
ADI_REG_TYPE TRE1_3[4] = {0x00, 0x8B, 0x72, 0xF0};
ADI_REG_TYPE TRE1_4[4] = {0xFF, 0xF3, 0x0E, 0x93};
void TRE1_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE1_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE1_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE1_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE1_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE1_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 2
ADI_REG_TYPE TRE2_0[4] = {0xFF, 0x70, 0x24, 0x03};
ADI_REG_TYPE TRE2_1[4] = {0x00, 0xAC, 0x4D, 0x82};
ADI_REG_TYPE TRE2_2[4] = {0xFF, 0xE5, 0x1A, 0x31};
ADI_REG_TYPE TRE2_3[4] = {0x00, 0x87, 0x7A, 0x69};
ADI_REG_TYPE TRE2_4[4] = {0xFF, 0xF6, 0xF9, 0xE1};
void TRE2_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE2_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE2_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE2_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE2_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE2_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 3
ADI_REG_TYPE TRE3_0[4] = {0xFF, 0x66, 0x99, 0x4A};
ADI_REG_TYPE TRE3_1[4] = {0x00, 0xBB, 0x5E, 0x92};
ADI_REG_TYPE TRE3_2[4] = {0xFF, 0xDF, 0xA1, 0xD3};
ADI_REG_TYPE TRE3_3[4] = {0x00, 0x83, 0x47, 0xDF};
ADI_REG_TYPE TRE3_4[4] = {0xFF, 0xFB, 0x1E, 0x71};
void TRE3_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE3_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE3_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE3_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE3_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE3_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 4
ADI_REG_TYPE TRE4_0[4] = {0xFF, 0x5C, 0x90, 0x9C};
ADI_REG_TYPE TRE4_1[4] = {0x00, 0xCB, 0x36, 0x87};
ADI_REG_TYPE TRE4_2[4] = {0xFF, 0xD9, 0xE1, 0x3E};
ADI_REG_TYPE TRE4_3[4] = {0x00, 0x7E, 0xDD, 0xEC};
ADI_REG_TYPE TRE4_4[4] = {0xFF, 0xFF, 0x79, 0xB3};
void TRE4_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE4_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE4_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE4_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE4_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE4_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 5
ADI_REG_TYPE TRE5_0[4] = {0xFF, 0x52, 0x12, 0x42};
ADI_REG_TYPE TRE5_1[4] = {0x00, 0xDB, 0xC8, 0x48};
ADI_REG_TYPE TRE5_2[4] = {0xFF, 0xD3, 0xDD, 0x35};
ADI_REG_TYPE TRE5_3[4] = {0x00, 0x7A, 0x40, 0x36};
ADI_REG_TYPE TRE5_4[4] = {0x00, 0x04, 0x08, 0x0A};
void TRE5_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE5_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE5_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE5_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE5_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE5_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 6
ADI_REG_TYPE TRE6_0[4] = {0xFF, 0x47, 0x28, 0xEF};
ADI_REG_TYPE TRE6_1[4] = {0x00, 0xED, 0x02, 0xF3};
ADI_REG_TYPE TRE6_2[4] = {0xFF, 0xCD, 0x9B, 0xD8};
ADI_REG_TYPE TRE6_3[4] = {0x00, 0x75, 0x73, 0x72};
ADI_REG_TYPE TRE6_4[4] = {0x00, 0x08, 0xC4, 0xD4};
void TRE6_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE6_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE6_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE6_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE6_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE6_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 7
ADI_REG_TYPE TRE7_0[4] = {0xFF, 0x3B, 0xE1, 0xA8};
ADI_REG_TYPE TRE7_1[4] = {0x00, 0xFE, 0xD1, 0xF7};
ADI_REG_TYPE TRE7_2[4] = {0xFF, 0xC7, 0x24, 0xA0};
ADI_REG_TYPE TRE7_3[4] = {0x00, 0x70, 0x7D, 0x59};
ADI_REG_TYPE TRE7_4[4] = {0x00, 0x0D, 0xAA, 0x68};
void TRE7_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE7_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE7_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE7_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE7_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE7_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 8
ADI_REG_TYPE TRE8_0[4] = {0xFF, 0x30, 0x4B, 0xA0};
ADI_REG_TYPE TRE8_1[4] = {0x01, 0x11, 0x1D, 0x56};
ADI_REG_TYPE TRE8_2[4] = {0xFF, 0xC0, 0x80, 0x40};
ADI_REG_TYPE TRE8_3[4] = {0x00, 0x6B, 0x64, 0x9B};
ADI_REG_TYPE TRE8_4[4] = {0x00, 0x12, 0xB2, 0x2E};
void TRE8_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE8_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE8_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE8_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE8_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE8_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 9
ADI_REG_TYPE TRE9_0[4] = {0xFF, 0x24, 0x77, 0xF0};
ADI_REG_TYPE TRE9_1[4] = {0x01, 0x23, 0xCA, 0x10};
ADI_REG_TYPE TRE9_2[4] = {0xFF, 0xB9, 0xB8, 0x89};
ADI_REG_TYPE TRE9_3[4] = {0x00, 0x66, 0x30, 0xBE};
ADI_REG_TYPE TRE9_4[4] = {0x00, 0x17, 0xD4, 0xB9};
void TRE9_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE9_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE9_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE9_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE9_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE9_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 10
ADI_REG_TYPE TRE10_0[4] = {0xFF, 0x18, 0x79, 0x3D};
ADI_REG_TYPE TRE10_1[4] = {0x01, 0x36, 0xBA, 0xB4};
ADI_REG_TYPE TRE10_2[4] = {0xFF, 0xB2, 0xD8, 0x28};
ADI_REG_TYPE TRE10_3[4] = {0x00, 0x60, 0xE9, 0xF5};
ADI_REG_TYPE TRE10_4[4] = {0x00, 0x1D, 0x09, 0xF1};
void TRE10_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE10_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE10_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE10_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE10_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE10_4);            /* EQ1940Dual12A1 */
}


// 調 Treble 為 -1
ADI_REG_TYPE TRE_1_0[4] = {0xFF, 0x89, 0xA0, 0x5C};
ADI_REG_TYPE TRE_1_1[4] = {0x00, 0x84, 0x0F, 0x8B};
ADI_REG_TYPE TRE_1_2[4] = {0xFF, 0xF3, 0xB6, 0x7B};
ADI_REG_TYPE TRE_1_3[4] = {0x00, 0x92, 0xB0, 0x70};
ADI_REG_TYPE TRE_1_4[4] = {0xFF, 0xEB, 0xE9, 0x2D};
void TRE_1_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_1_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_1_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_1_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_1_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_1_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -2
ADI_REG_TYPE TRE_2_0[4] = {0xFF, 0x91, 0x0D, 0xD1};
ADI_REG_TYPE TRE_2_1[4] = {0x00, 0x78, 0x55, 0x24};
ADI_REG_TYPE TRE_2_2[4] = {0xFF, 0xF7, 0xF8, 0x8D};
ADI_REG_TYPE TRE_2_3[4] = {0x00, 0x95, 0xF4, 0xE1};
ADI_REG_TYPE TRE_2_4[4] = {0xFF, 0xE8, 0xAF, 0x9D};
void TRE_2_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_2_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_2_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_2_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_2_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_2_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -3
ADI_REG_TYPE TRE_3_0[4] = {0xFF, 0x97, 0xF4, 0x7E};
ADI_REG_TYPE TRE_3_1[4] = {0x00, 0x6D, 0x6F, 0x8E};
ADI_REG_TYPE TRE_3_2[4] = {0xFF, 0xFB, 0xED, 0x5A};
ADI_REG_TYPE TRE_3_3[4] = {0x00, 0x98, 0xFE, 0x07};
ADI_REG_TYPE TRE_3_4[4] = {0xFF, 0xE5, 0xB0, 0x92};
void TRE_3_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_3_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_3_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_3_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_3_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_3_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -4
ADI_REG_TYPE TRE_4_0[4] = {0xFF, 0x9E, 0x57, 0xC0};
ADI_REG_TYPE TRE_4_1[4] = {0x00, 0x63, 0x59, 0x7B};
ADI_REG_TYPE TRE_4_2[4] = {0xFF, 0xFF, 0x96, 0xD1};
ADI_REG_TYPE TRE_4_3[4] = {0x00, 0x9B, 0xCD, 0x5F};
ADI_REG_TYPE TRE_4_4[4] = {0xFF, 0xE2, 0xEA, 0x96};
void TRE_4_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_4_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_4_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_4_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_4_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_4_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -5
ADI_REG_TYPE TRE_5_0[4] = {0xFF, 0xA4, 0x3C, 0x14};
ADI_REG_TYPE TRE_5_1[4] = {0x00, 0x5A, 0x0B, 0xD4};
ADI_REG_TYPE TRE_5_2[4] = {0x00, 0x02, 0xF7, 0x83};
ADI_REG_TYPE TRE_5_3[4] = {0x00, 0x9E, 0x64, 0xE0};
ADI_REG_TYPE TRE_5_4[4] = {0xFF, 0xE0, 0x5B, 0xB5};
void TRE_5_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_5_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_5_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_5_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_5_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_5_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -6
ADI_REG_TYPE TRE_6_0[4] = {0xFF, 0xAE, 0x9E, 0x12};
ADI_REG_TYPE TRE_6_1[4] = {0x00, 0x49, 0xA6, 0xD8};
ADI_REG_TYPE TRE_6_2[4] = {0x00, 0x08, 0xEB, 0x4B};
ADI_REG_TYPE TRE_6_3[4] = {0x00, 0xA2, 0xF6, 0x1D};
ADI_REG_TYPE TRE_6_4[4] = {0xFF, 0xDB, 0xD9, 0xAD};
void TRE_6_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_6_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_6_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_6_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_6_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_6_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -7
ADI_REG_TYPE TRE_7_0[4] = {0xFF, 0xA9, 0xA6, 0xD8};
ADI_REG_TYPE TRE_7_1[4] = {0x00, 0x51, 0x7E, 0x1E};
ADI_REG_TYPE TRE_7_2[4] = {0x00, 0x06, 0x12, 0x86};
ADI_REG_TYPE TRE_7_3[4] = {0x00, 0xA0, 0xC6, 0xE8};
ADI_REG_TYPE TRE_7_4[4] = {0xFF, 0xDE, 0x01, 0x9C};
void TRE_7_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_7_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_7_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_7_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_7_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_7_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -8
ADI_REG_TYPE TRE_8_0[4] = {0xFF, 0xB3, 0x28, 0x38};
ADI_REG_TYPE TRE_8_1[4] = {0x00, 0x42, 0x7B, 0xD0};
ADI_REG_TYPE TRE_8_2[4] = {0x00, 0x0B, 0x85, 0x88};
ADI_REG_TYPE TRE_8_3[4] = {0x00, 0xA4, 0xF5, 0x56};
ADI_REG_TYPE TRE_8_4[4] = {0xFF, 0xD9, 0xE1, 0x1A};
void TRE_8_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_8_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_8_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_8_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_8_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_8_4);            /* EQ1940Dual12A1 */
}
// 調 Treble 為 -9
ADI_REG_TYPE TRE_9_0[4] = {0xFF, 0xB7, 0x4C, 0x01};
ADI_REG_TYPE TRE_9_1[4] = {0x00, 0x3B, 0xF2, 0x69};
ADI_REG_TYPE TRE_9_2[4] = {0x00, 0x0D, 0xE5, 0x16};
ADI_REG_TYPE TRE_9_3[4] = {0x00, 0xA6, 0xC7, 0x87};
ADI_REG_TYPE TRE_9_4[4] = {0xFF, 0xD8, 0x14, 0xF9};
void TRE_9_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_9_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_9_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_9_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_9_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_9_4);            /* EQ1940Dual12A1 */
}

// 調 Treble 為 -10
ADI_REG_TYPE TRE_10_0[4] = {0xFF, 0xBB, 0x10, 0x41};
ADI_REG_TYPE TRE_10_1[4] = {0x00, 0x35, 0xFF, 0xDB};
ADI_REG_TYPE TRE_10_2[4] = {0x00, 0x10, 0x0D, 0xE0};
ADI_REG_TYPE TRE_10_3[4] = {0x00, 0xA8, 0x6F, 0xB3};
ADI_REG_TYPE TRE_10_4[4] = {0xFF, 0xD6, 0x72, 0x52};
void TRE_10_download(void){
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0005, 4, TRE_10_0);            /* EQ1940Dual10B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0006, 4, TRE_10_1);            /* EQ1940Dual11B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0007, 4, TRE_10_2);            /* EQ1940Dual12B1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0008, 4, TRE_10_3);            /* EQ1940Dual11A1 */
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_, 0x0009, 4, TRE_10_4);            /* EQ1940Dual12A1 */
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復

使用道具 舉報

地板
ID:1080782 發表于 2025-10-8 10:46 | 只看該作者
樓主有完整代碼嘛
回復

使用道具 舉報

板凳
ID:3706 發表于 2020-3-2 17:33 | 只看該作者
樓主可以提供這個程序的下載嗎?
回復

使用道具 舉報

沙發
ID:89217 發表于 2020-2-27 13:11 | 只看該作者
多做幾個宏命令多舒服,你這寫的太累了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
亚洲精品国产成人久久av盗摄| 91小视频在线免费看| 情se视频网在线观看| 亚洲 欧美 中文字幕| 天堂av.com| 日韩精品电影网站| 8090成年在线看片午夜| 91麻豆精品国产91久久久久久久久| 26uuu色噜噜精品一区| 一区在线视频观看| 日本午夜精品| 伊人久久综合一区二区| 日本1级在线| 91网站免费| 国产91免费在线观看| 久久精品一区二区三区四区五区| 色噜噜狠狠狠综合曰曰曰88av| 亚洲色欲色欲www| 麻豆国产精品一区二区三区| a√在线视频| japanese国产| 免费麻豆国产一区二区三区四区| 国模大尺度视频| www.男人天堂网| 国产欧美精品一区二区三区| 韩日欧美一区二区| 亚洲人成在线播放| 欧美一区二区在线免费播放| 亚洲国产色一区| 久久久久久亚洲综合| 日本视频一区二区三区| 欧美福利在线| 免费短视频成人日韩| avav成人| 国产精品一区二区日韩| 五月天婷婷在线视频| 操碰在线免费| 韩国av电影免费观看| 91精彩视频| 国产精品国产高清国产| 中文字幕免费观看视频| 日本高清www免费视频| 欧美特黄一级片| 一级肉体全黄裸片| 亚洲一区二区三区四区五区六区| 一级做a免费视频| 亚洲少妇在线| 伊人精彩视频| 免费看黄色的网站| 五月天丁香花婷婷| 日韩精彩视频| 九色综合婷婷综合| 成人免费网站在线| 高清欧美一区二区三区| 久久视频免费在线播放| 精品一区二区三区四区在线| 日韩一区二区中文字幕| 一本大道综合伊人精品热热| 最近日韩中文字幕| 国产精品理论在线观看| 国产欧美精品在线观看| 久久精品视频免费观看| 久久网这里都是精品| kk眼镜猥琐国模调教系列一区二区 | 欧美精品中文字幕一区| 国产亚洲精品美女| 在线丨暗呦小u女国产精品| 成人免费视频一区二区| 国产在线精品一区二区| 国产一区二区三区黄视频| 久久99国内精品| 国产一区二区导航在线播放| 激情六月婷婷综合| 国产成人精品免费一区二区| 成人福利视频网站| 久久精品夜色噜噜亚洲a∨| 国产欧美一区二区三区在线看蜜臀 | 麻豆乱码国产一区二区三区| 一区二区三区动漫| 久久成人精品一区二区三区| 欧美激情中文网| 欧美一区在线直播| 成人综合国产精品| 欧美午夜宅男影院在线观看| 亚洲高清中文字幕| 日本道精品一区二区三区| 在线视频一区二区三区| 欧美一区二区免费视频| 精品国产区一区| 精品视频久久久久久久| 日韩在线视频观看正片免费网站| 九九热精品在线| 国产精品99一区| 99re国产在线播放| 色噜噜一区二区| 国产精品999视频| 日本中文字幕观看| 精品人妻互换一区二区三区| 精品无码久久久久| 99在线精品视频免费观看20| 亚洲国产综合久久精品小蝴蝶| 一个人免费观看在线视频www| 成人免费在线观看网站| 蜜桃免费在线| 成人在线黄色电影| 成人搞黄视频| 国产精品红桃| 国产aⅴ精品一区二区三区色成熟| 久久久精品综合| 欧美日韩免费在线观看| 欧美精品一区二区三区在线| 欧美成人亚洲成人| 亚洲va国产va天堂va久久| 日韩在线三级| 538任你躁在线精品免费| 色婷婷av777| 欧美性猛交xxxx乱大交hd| 亚洲av成人精品毛片| www.eeuss影院| av网站大全在线观看| 日韩另类视频| 四季av一区二区三区免费观看| 日本最新不卡在线| 久久久久久久久一| 欧美日韩国产在线观看| 久久亚洲精品一区| 亚洲精品久久久久中文字幕二区 | www.天天射.com| 欧美多人猛交狂配| 国产乱国产乱老熟| 性xxxx奶大欧美高清| 97色伦图片97色伦在线电影| 日本h片在线| 欧美男人操女人视频| 亚洲人妖在线| 国产精品久久网站| 日韩免费在线观看| 国产97在线播放| 在线观看18视频网站| 69xxx免费视频| 亚洲欧美自拍视频| 亚洲免费国产| 欧美日韩影视| 日本在线视频一区二区三区| 国产视频网址在线| 182在线播放| 成人6969www免费视频| 国产一区 二区 三区一级| 亚洲成人av免费| 亚洲偷欧美偷国内偷| 国产一区玩具在线观看| 97超碰国产精品| 精品人体无码一区二区三区| 国产人妻精品一区二区三| www.狠狠lu| 乱馆动漫1~6集在线观看| 色777狠狠狠综合伊人| 91在线精品秘密一区二区| 91精品国产乱| 成人精品在线观看| 国产一级片自拍| 波多野结衣在线观看视频| 公交车强行挺进岳身体| 樱桃视频成人在线观看| 99精品免费视频| 亚洲成av人片| 久久久久久久久久婷婷| 青青草免费在线视频观看| 人人艹在线视频| 国内国产区免费视频| 3d玉蒲团在线观看| 在线一区免费| 亚洲资源中文字幕| 久久se这里有精品| аⅴ天堂中文在线网| 天天影视天天精品| 亚洲色图偷拍视频| 久久99日本精品| 亚洲精品免费一区亚洲精品免费精品一区| 国产探花在线精品一区二区| 日本午夜精品一区二区| 日韩午夜电影免费看| 亚洲精品一区二| 97人人澡人人爽91综合色| 中文字幕欧美人与畜| 国产91精品入| 成人在线观看黄| www.av在线| 国产精品久久久久91| 免费av不卡在线观看| 国产精品日韩一区二区三区| av资源网在线播放| 久久国产精品亚洲va麻豆| 欧美性生活一级| 大西瓜av在线| 亚洲国产mv| 欧美日韩在线观看免费| 国产精品卡一卡二卡三| 国产成人黄色网址| 精品一区二区精品| 国产91国语对白在线| 伊人久久国产| 国产精品专区在线| 日韩综合小视频| 午夜视频网站在线观看| 欧美色网一区二区| baoyu777.永久免费视频| 国产精品久久久久久婷婷天堂| 日韩不卡免费高清视频| wwww.国产| 福利一区福利二区| 凸凹人妻人人澡人人添| 国产亚洲视频在线观看| 里番在线观看网站| 国产毛片视频网站| 国产最新精品免费| 亚洲国产精彩视频| 中文字幕一区电影| 无人区在线高清完整免费版 一区二| 毛片在线视频播放| 波多野洁衣一区| 久久久久88色偷偷| 欧美性视频精品| 91欧美日韩在线| 亚洲天堂网一区二区| 精品成人国产在线观看男人呻吟| 九九热视频在线| 春色成人在线视频| 亚洲激情自拍| 少妇荡乳情欲办公室456视频| 欧美成人精品不卡视频在线观看| 国模套图日韩精品一区二区| 亚洲综合在线小说| 亚洲裸色大胆大尺寸艺术写真| 欧美aaa级片| 日韩免费高清av| 阿v视频在线| www.日本高清| 精品视频1区2区3区| 91极品在线| 超碰97在线资源站| 678五月天丁香亚洲综合网| 欧美卡一卡二| 国产一二三四五区| 欧美一二三区在线| 蜜桃视频成人m3u8| 成年人免费视频播放| 一区二区三区午夜探花| 无码人妻精品一区二区蜜桃色欲| 中文字幕精品久久久久| 97视频一区| 中文字幕人妻一区二区在线视频| 波霸ol色综合久久| 亚洲人成精品久久久 | 伊人网在线观看| 日韩手机在线观看视频| 樱花草国产18久久久久| 黄色一级大片在线免费看产| 91传媒理伦片在线观看| 亚洲级视频在线观看免费1级| 3d欧美精品动漫xxxx无尽| 91香蕉视频在线播放| 色婷婷成人综合| 欧美激情偷拍自拍| 久久国产精品久久久久久小说| 亚洲精品免费在线看| 久久久精品黄色| 高清毛片在线看| 六月婷婷七月丁香| 亚洲欧美日韩爽爽影院| 嫩草一区二区三区| 另类综合图区| 国产精品久久久久7777| 色哟哟一区二区| 亚洲人体在线| 国产成人三级在线观看视频| 久久偷窥视频| 亚洲免费伊人电影| 手机看片久久| 国产精品爽爽久久久久久| 国新精品乱码一区二区三区18| 亚洲国产精品v| 欧美在线va视频| 欧美性受xxxx狂喷水| 日韩三级电影| 欧美在线制服丝袜| 久久不见久久见国语| 成年人三级网站| 黄色在线免费播放| 欧美成人小视频| 91免费观看视频| 手机av在线播放| 亚洲视频网站在线| 中文精品无码中文字幕无码专区| 56国语精品自产拍在线观看| 成人久久电影| 婷婷六月激情| 欧美特级一级片| 久久久久久久久四区三区| 日韩欧美极品在线观看| 神马影视一区二区| 亚洲精选av在线| 美女的奶胸大爽爽大片| 成人在线播放av| 91久久国产综合久久| 一区二区蜜桃| 91se在线| 无码精品黑人一区二区三区 | 国产精品论坛| 天堂tv亚洲tv日本tv欧美人tv| 日日躁夜夜躁aaaabbbb| 91国内在线视频| 综合分类小说区另类春色亚洲小说欧美 | 婷婷国产精品| 特黄aaaaaaaaa毛片免费视频| 国产精品自拍视频一区| 在线视频一区观看| 丝袜美腿亚洲一区二区| 久久久亚洲精品石原莉奈| 另类在线视频| 日本中文字幕一区二区有码在线 | 97se亚洲国产综合自在线不卡 | 日本黄色www| av电影成人| 麻豆精品在线播放| 狂野欧美xxxx韩国少妇| 日本特黄a级高清免费大片| 日韩免费av网站| 中文字幕 欧美日韩| www.av一区视频| 丝袜美腿亚洲一区二区| 亚洲成人av一区| 国产精品乡下勾搭老头1| 日韩一二三区在线观看| 欧美69xxxxx| 国产chinese男男gaygay网站| 欧美精品videos极品| 99久久久无码国产精品6| 91精品国产综合久久男男 | 国产精品传媒麻豆hd| 青柠在线影院观看日本| 影音先锋男士资源站| 国产一级在线观看视频| 在线观看av网页| 一本色道婷婷久久欧美| 庆余年2免费日韩剧观看大牛| 欧美猛男超大videosgay| 国产成人精品免费在线| 亚洲影院天堂中文av色| 搞黄网站在线看| 一级视频在线免费观看| 国产精品久久精品牛牛影视| 久久国产主播精品| 欧美成人精品h版在线观看| 在线免费观看视频一区| 久久久国产精品午夜一区ai换脸| av伦理在线| 午夜3点看的视频| 在线观看天堂| 国产99对白在线播放| 免费网站看av| 精品黑人一区二区三区观看时间| 91好吊色国产欧美日韩在线| 青青草国产精品| 国产精品久久久久免费| 青青在线视频一区二区三区| 中国日韩欧美久久久久久久久| 在线不卡中文字幕| 精品69视频一区二区三区Q| 欧美自拍视频| 日韩啪啪网站| www.亚洲一二| 国产精品亚洲欧美一级在线| 青青草原国产在线| 色多多视频在线观看| 男人操女人的视频网站| 美女日批在线观看| 色婷婷激情视频| 天堂av.com| 亚洲黄色av网址| 日本特黄a级片| 这里只有精品在线观看视频| 韩国一区二区三区四区| 凹凸国产熟女精品视频| 国产中文字幕二区| 日本精品一区在线观看| 国产精品亚洲a| 日本 片 成人 在线| 日本一二区免费| 老司机午夜免费福利| 色欲av无码一区二区三区| 老熟妇一区二区| 亚洲精品一区二区三区在线播放| 久久久久久久久福利| 日韩在线观看视频一区二区| 国产一卡二卡在线播放| 中文字幕在线观看国产| 亚洲成人在线播放| 97久久久久久久| 国产99免费视频|