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

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

?? fw.c

?? FS7805 使用APLIF的demoFS7805 使用APLIF的demo
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*
*********************************************************************************************************
* File:     Fw.C
* Contents: Firmware frameworks task dispatcher and device request parser source
*
* $Date:    04/06/06    Kimi    v0.1
* $Date:    04/25/06    Kimi    v0.2
* $Date:    04/30/06    Kimi    v0.3
* $Date:    01/23/07    Kevin   v0.4
* Copyright (c) 2006 Fameg, Inc. All rights reserved
*********************************************************************************************************
*/

#include "fs7805.h"
#include "fs7805regs.h"
#include "string.h"

const INT8U xdata WaveData[128] =
{
// Wave 0
/* LenBr */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Opcode*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* LFun  */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Output*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
// Wave 1
/* LenBr */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Opcode*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* LFun  */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Output*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
// Wave 2
/* LenBr */ 0x01,     0x02,     0x39,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Opcode*/ 0x00,     0x02,     0x07,     0x00,     0x00,     0x00,     0x00,     0x00,
/* LFun  */ 0x00,     0x00,     0x2D,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Output*/ 0xFF,     0xFF,     0xFF,     0x00,     0x00,     0x00,     0x00,     0x00,
// Wave 3
/* LenBr */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Opcode*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* LFun  */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
/* Output*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,
};

/*
*********************************************************************************************************
*                                       VARIABLE PROTOTYPES
*********************************************************************************************************
*/
union FIFODataLen
{
    INT16U  Val;
    INT8U   Byte[2];
};

   union FIFODataLen Length;
#ifdef  PINGPONG_FIFO
   INT8U SW_FifoOut_Toggle = 0, SW_FifoIn_Toggle = 0;
#endif
   INT16U UsbDmaBuffer;

/*
*********************************************************************************************************
*                                       FUNCTION PROTOTYPES
*********************************************************************************************************
*/
#ifdef  PINGPONG_FIFO
 void  FifoIn (INT8U *pReadBuffer, INT8U BufferNo, INT16U DataLen);
 void  FifoOut (INT8U *pReadBuffer, INT8U BufferNo);
 void  SendDataCmd (INT8U BufferNo);
#else
 void  FifoIn (INT8U *pReadBuffer, INT16U DataLen);
 void  FifoOut (INT8U *pReadBuffer);
 void  SendDataCmd (void);
#endif
 void  UsbBulkIn (INT8U *pReadBuffer, INT16U DataLen);
 void  UsbBulkOut (INT8U *pReadBuffer);
 void  UsbInit (void);
 void  KsocInit (void);

#ifdef  PINGPONG_FIFO
/*
*********************************************************************************************************
*                                             USBBULKOUT
*
* Description: Device receive data from host
*
* Arguments  : pReadBuffer   buffer address
*
* Returns    : none
*********************************************************************************************************
*/
void  UsbBulkOut (INT8U *pReadBuffer)
{
    if ((EP2FIFOCS & bmFIFO0_FULL) && (EP2FIFOCS & bmFIFO1_FULL))
    {                                                  // FULL_0 = 1 and FULL_1 = 1
        if (SW_FifoOut_Toggle == 0)
        {
            FifoOut(pReadBuffer, 0);                   // Read FIFO0
        }
        else
        {
            FifoOut(pReadBuffer, 1);                   // Read FIFO1
        }
    }
    else if (EP2FIFOCS & bmFIFO0_FULL)                 // FULL_0 = 1
    {
        FifoOut(pReadBuffer, 0);                       // Read FIFO0
    }
    else if (EP2FIFOCS & bmFIFO1_FULL)                 // FULL_1 = 1
    {
        FifoOut(pReadBuffer, 1);                       // Read FIFO1
    }
}


/*
*********************************************************************************************************
*                                             USBBULKIN
*
* Description: Device send data to host
*
* Arguments  : pReadBuffer   buffer address
*
*              DataLen       Data Length
*
* Returns    : none
*********************************************************************************************************
*/
void  UsbBulkIn (INT8U *pReadBuffer, INT16U DataLen)
{
    if ((!(EP1FIFOCS & bmFIFO0_FULL)) && (!(EP1FIFOCS & bmFIFO1_FULL)))
    {                                                  // FULL_0 = 0 and FULL_1 = 0
        if ((EP1FIFOCS & bmFIFO_TOG) == 0)
        {
            FifoIn(pReadBuffer, 0, DataLen);           // Write FIFO0
        }
        else
        {
            FifoIn(pReadBuffer, 1, DataLen);           // Write FIFO1
        }
    }
    else if (!(EP1FIFOCS & bmFIFO0_FULL))              // FULL_0 = 0
    {
        FifoIn(pReadBuffer, 0, DataLen);               // Write FIFO0
    }
    else if (!(EP1FIFOCS & bmFIFO1_FULL))              // FULL_1 = 0
    {
        FifoIn(pReadBuffer, 1, DataLen);               // Write FIFO1
    }

    if ((!(EP1FIFOCS & bmFIFO0_FULL)) && (!(EP1FIFOCS & bmFIFO1_FULL)))
    {                                                  // FULL_0 = 0 and FULL_1 = 0
        if (SW_FifoIn_Toggle == 0)
        {
            SendDataCmd(0);                            // Complete Write FIFO0
        }
        else
        {
            SendDataCmd(1);                            // Complete Write FIFO1
        }
    }
    else if (!(EP1FIFOCS & bmFIFO0_FULL))              // FULL_0 = 0
    {
        SendDataCmd(0);                                // Complete Write FIFO0
    }
    else if (!(EP1FIFOCS & bmFIFO1_FULL))              // FULL_1 = 0
    {
        SendDataCmd(1);                                // Complete Write FIFO1
    }
}


/*
*********************************************************************************************************
*                                             FIFOOUT
*
* Description: Device receive data from host using FIFO function
*
* Arguments  : pReadBuffer   buffer address
*
*              BufferNo      FIFO0 or FIFO1
*
* Returns    : none
*********************************************************************************************************
*/
void  FifoOut (INT8U *pReadBuffer, INT8U BufferNo)
{
    SW_FifoOut_Toggle       = !BufferNo;               // Invert SW_FifoOut_Toggle polarity

    if (BufferNo == 0)
    {
        Length.Byte[1]      = EP2CNT0L;                // Get low byte data
        Length.Byte[0]      = EP2CNTH & 0x07;          // Get high byte data
        UsbDmaBuffer        = DMA_FIFO2_0;             // Get FIFO address
    }
    else
    {
        Length.Byte[1]      = EP2CNT1L;
        Length.Byte[0]      = (EP2CNTH & 0x70) >> 4;
        UsbDmaBuffer        = DMA_FIFO2_1;
    }
    memcpy(pReadBuffer, (INT8U xdata *)UsbDmaBuffer, Length.Val);

    if (BufferNo == 0)                                 // Switch FIFO_Toggle and Clear FULL bit
    {
        EP2FIFOCS           = (EP2FIFOCS | bmFIFO_TOG_WE) | bmFIFO_TOG;
        EP2FIFOCS           = (EP2FIFOCS | bmFIFO0_FULL_WE) & (~bmFIFO0_FULL);
    }
    else
    {
        EP2FIFOCS           = (EP2FIFOCS | bmFIFO_TOG_WE) & (~bmFIFO_TOG);
        EP2FIFOCS           = (EP2FIFOCS | bmFIFO1_FULL_WE) & (~bmFIFO1_FULL);
    }
    EP2CS                   = EP2CS | bmEP_RXTXEN;     // Enable RXTX
}


/*
*********************************************************************************************************
*                                             FIFOIN
*
* Description: Device send data to host using FIFO function
*
* Arguments  : pReadBuffer   buffer address
*
*              BufferNo      FIFO0 or FIFO1
*
*              DataLen       Data Length
*
* Returns    : none
*********************************************************************************************************
*/
void  FifoIn (INT8U *pReadBuffer, INT8U BufferNo, INT16U DataLen)
{
    union
    {
        INT8U   Val;
        struct
        {
            INT8U   Count0 : 3;
            INT8U          : 1;
            INT8U   Count1 : 3;
            INT8U          : 1;
        } Bit;
    } HighReg;

    Length.Val              = DataLen;
    HighReg.Val             = EP1CNTH;

    if (BufferNo == 0)
    {
        EP1CNT0L            = Length.Byte[1];          // Write count low byte
        HighReg.Bit.Count0  = Length.Byte[0] & 0x07;
        HighReg.Val         = HighReg.Val | bmCNT0HWEN;
        EP1CNTH             = HighReg.Val;             // Write count high byte
        UsbDmaBuffer        = DMA_FIFO1_0;             // Get FIFO address
    }
    else
    {
        EP1CNT1L            = Length.Byte[1];
        HighReg.Bit.Count1  = Length.Byte[0] & 0x07;
        HighReg.Val         = HighReg.Val | bmCNT1HWEN;
        EP1CNTH             = HighReg.Val;
        UsbDmaBuffer        = DMA_FIFO1_1;
    }
    memcpy((INT8U xdata *)UsbDmaBuffer, pReadBuffer, DataLen);
                                                       // Copy data
}


/*
*********************************************************************************************************
*                                             SENDDATACMD
*
* Description: Complete IN operation function
*
* Arguments  : BufferNo      FIFO0 or FIFO1
*
* Returns    : none
*********************************************************************************************************
*/
void  SendDataCmd (INT8U BufferNo)
{
    if (BufferNo == 0)                                 // Set FULL bit
    {
        EP1FIFOCS           = (EP1FIFOCS | bmFIFO0_FULL_WE) | bmFIFO0_FULL;
    }
    else
    {
        EP1FIFOCS           = (EP1FIFOCS | bmFIFO1_FULL_WE) | bmFIFO1_FULL;
    }
    SW_FifoIn_Toggle        = !BufferNo;               // Invert SW_FifoOut_Toggle polarity
    EP1CS                   = EP1CS | bmEP_RXTXEN;     // Enable RXTX
}


#else
/*
*********************************************************************************************************
*                                             USBBULKOUT
*
* Description: Device receive data from host
*
* Arguments  : pReadBuffer   buffer address
*
* Returns    : none
*********************************************************************************************************
*/
void  UsbBulkOut (INT8U *pReadBuffer)
{
    if (EP2FIFOCS & bmFIFO0_FULL)
    {
        FifoOut(pReadBuffer);                          // Read FIFO0
    }
}


/*
*********************************************************************************************************
*                                             USBBULKIN
*
* Description: Device send data to host
*
* Arguments  : pReadBuffer   buffer address
*
*              DataLen       Data Length
*
* Returns    : none
*********************************************************************************************************
*/
void  UsbBulkIn (INT8U *pReadBuffer, INT16U DataLen)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线视频官网| 欧美一区二区免费视频| 国产欧美一区二区精品婷婷| 久久精品国产秦先生| 欧美一区二区免费视频| 国产在线一区观看| 欧美激情一区三区| 99re这里只有精品视频首页| 亚洲精品日日夜夜| 欧美肥妇毛茸茸| 久久不见久久见中文字幕免费| 精品久久久久久久人人人人传媒| 国产精品小仙女| 日韩久久一区二区| 欧美午夜精品一区二区蜜桃| 日韩高清在线观看| 2022国产精品视频| 91美女福利视频| 亚洲观看高清完整版在线观看| 日韩欧美一区二区视频| 国产毛片精品一区| 一区二区三区欧美日| 欧美一区二区三区视频| 国产精品888| 亚洲成a人片在线观看中文| 精品理论电影在线| 色综合视频在线观看| 日本vs亚洲vs韩国一区三区二区 | 91老师片黄在线观看| 亚洲图片欧美色图| 久久这里只有精品6| 99国产欧美久久久精品| 天天亚洲美女在线视频| 久久久高清一区二区三区| 欧美在线影院一区二区| 国产麻豆成人传媒免费观看| 亚洲精品乱码久久久久久| 精品国产乱码久久久久久老虎| 波多野结衣中文一区| 免费国产亚洲视频| 亚洲欧美一区二区三区国产精品| 91精品国产综合久久久久| av色综合久久天堂av综合| 日本aⅴ亚洲精品中文乱码| 18成人在线观看| 精品国产欧美一区二区| 欧美中文字幕一区二区三区亚洲| 国产成人综合亚洲网站| 日韩av网站在线观看| 亚洲女同女同女同女同女同69| 久久一区二区三区四区| 欧美色综合影院| 99久久精品免费精品国产| 国产在线精品不卡| 日韩不卡一二三区| 亚洲自拍都市欧美小说| 中文字幕av一区 二区| 精品国产电影一区二区| 欧美日韩在线播放三区四区| hitomi一区二区三区精品| 国产另类ts人妖一区二区| 免费看日韩精品| 五月综合激情日本mⅴ| 亚洲欧美另类综合偷拍| 日本一二三四高清不卡| 久久丝袜美腿综合| 精品国产亚洲在线| 精品国产亚洲一区二区三区在线观看| 欧美撒尿777hd撒尿| 欧美伊人久久久久久久久影院| 成人av网站在线观看| 国产成人免费在线观看| 国内精品久久久久影院一蜜桃| 免费观看久久久4p| 日本不卡视频一二三区| 喷水一区二区三区| 亚洲成av人片www| 日韩国产成人精品| 另类欧美日韩国产在线| 麻豆一区二区三| 狠狠色狠狠色合久久伊人| 国产一区日韩二区欧美三区| 五月婷婷激情综合| 麻豆一区二区在线| 国产高清精品网站| 大胆欧美人体老妇| 99国产一区二区三精品乱码| 99久久婷婷国产| 色哟哟国产精品| 欧美丝袜丝交足nylons图片| 91社区在线播放| 欧美在线视频你懂得| 欧美精品日韩综合在线| 欧美一区二区三区在线观看 | 久久久亚洲精品一区二区三区| 国产婷婷精品av在线| 自拍偷自拍亚洲精品播放| 一区二区欧美精品| 日韩成人一区二区三区在线观看| 久久疯狂做爰流白浆xx| 成人午夜视频免费看| 色妹子一区二区| 欧美一区二区二区| 国产婷婷色一区二区三区在线| 亚洲人成网站在线| 日本不卡免费在线视频| 成人国产电影网| 欧美色男人天堂| 久久综合久色欧美综合狠狠| 国产精品久久久久影院老司| 亚洲欧美日韩国产综合在线| 日韩在线一二三区| 国产成人av一区二区三区在线| 99久久久久久| 日韩欧美高清dvd碟片| 国产精品三级av在线播放| 亚洲成人免费av| 国产成人综合亚洲网站| 欧美三级乱人伦电影| 国产欧美视频一区二区| 亚洲一区二区三区四区中文字幕| 久久精品国产亚洲一区二区三区| 91一区二区在线| 日韩一区二区三| 亚洲裸体在线观看| 精一区二区三区| 欧美亚洲国产一区在线观看网站| 久久婷婷成人综合色| 亚洲国产婷婷综合在线精品| 国产精品综合二区| 欧美日韩精品免费| 自拍av一区二区三区| 久久草av在线| 欧美日韩免费一区二区三区视频| 国产色产综合色产在线视频| 午夜欧美2019年伦理| 国产精品1区2区| 在线成人免费观看| 亚洲免费在线观看视频| 国产黄色精品网站| 日韩一区二区不卡| 亚洲综合一区在线| www.欧美日韩| 国产拍揄自揄精品视频麻豆| 日韩avvvv在线播放| 欧美色老头old∨ideo| 一区二区三区高清| av成人老司机| 亚洲国产精品二十页| 九九久久精品视频| 日韩欧美激情一区| 天天综合网 天天综合色| 91社区在线播放| 亚洲视频资源在线| 成人免费电影视频| 国产三级一区二区| 久久 天天综合| 欧美xfplay| 老汉av免费一区二区三区| 91国偷自产一区二区开放时间 | 不卡av电影在线播放| 国产欧美日韩亚州综合| 国产伦理精品不卡| 国产日韩欧美不卡在线| 国产剧情一区二区三区| 国产亚洲精久久久久久| 国产69精品一区二区亚洲孕妇| 久久久亚洲精华液精华液精华液 | 亚洲欧美经典视频| 99re这里只有精品首页| 亚洲欧美影音先锋| 97久久人人超碰| 亚洲免费在线播放| 欧美网站一区二区| 日韩精品国产欧美| 日韩亚洲欧美成人一区| 麻豆成人免费电影| 精品欧美久久久| 国产一区二区h| 国产精品污污网站在线观看 | 精久久久久久久久久久| 久久在线观看免费| 国产成人精品1024| 国产精品伦理在线| 色综合色综合色综合色综合色综合 | 国产女人水真多18毛片18精品视频| 国产精品乡下勾搭老头1| 中文字幕一区二区三区不卡在线| 99久久精品费精品国产一区二区| 亚洲人成网站色在线观看 | 欧美精品久久99| 麻豆91在线播放免费| 国产欧美精品一区二区三区四区| av激情综合网| 日本伊人精品一区二区三区观看方式| 日韩欧美123| 99久久精品国产一区| 亚洲高清视频在线| 亚洲精品一区二区三区精华液| 国产精品 日产精品 欧美精品|