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

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

?? usb_drv.h

?? 利用AT89C5131制作的數據采集系統(附加操作界面子程序)
?? H
字號:
/*H**************************************************************************
* NAME:         usb_drv.h         
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      c5131-usb-kbd-light-1_0_2      
* REVISION:     1.4     
*----------------------------------------------------------------------------
* PURPOSE: 
* This file contains the USB low level driver definition                                      
*****************************************************************************/

#ifndef _USB_DRV_H_
#define _USB_DRV_H_

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


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


/*F**************************************************************************
* NAME: CONTROL / BULK / INTERRUPT / ISOCHRONOUS
*----------------------------------------------------------------------------
* PURPOSE: 
* These define are the values used to enable and configure an endpoint.
* They are written in the UEPCONX register.
*****************************************************************************/

#define CONTROL              0x80
#define BULK_IN              0x86
#define BULK_OUT             0x82
#define INTERRUPT_IN         0x87
#define INTERRUPT_OUT        0x83
#define ISOCHRONOUS_IN       0x85
#define ISOCHRONOUS_OUT      0x81
#define BULK_MAX_SIZE        ((Uchar)64)

/*M**************************************************************************
* NAME: wSWAP 
*----------------------------------------------------------------------------
* PARAMS:
* x     : (Uint16) the 16 bit word to swap 
* return: (Uint16) the 16 bit word x with the 2 bytes swaped  
*----------------------------------------------------------------------------
* PURPOSE: 
* This macro swaps the Uchar order in words.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define wSWAP(x) ((((x)>>8)&0x00FF)|(((x)<<8)&0xFF00)) ;


/*M**************************************************************************
* NAME: dwSWAP 
*----------------------------------------------------------------------------
* PARAMS:
* x     : (Uint32) the 32 bit double word to swap 
* return: (Uint32) the 32 bit double word x with the 4 bytes swaped  
*----------------------------------------------------------------------------
* PURPOSE: 
* This macro swaps the Uchar order in double words.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define dwSWAP(x) ((((x)>>24)&0x000000FF)|(((x)>>8)&0x0000FF00)|(((x)<<24)&0xFF000000)|(((x)<<8)&0x00FF0000))


/*M**************************************************************************
* NAME: General endpoint management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the common features of the endpoints
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define Usb_select_ep(e)              (UEPNUM = e)
#define Usb_configure_ep_type(x)      (UEPCONX = x)
#define Usb_set_stall_request()       (UEPSTAX |= MSK_STALLRQ)
#define Usb_clear_stall_request()     (UEPSTAX &= ~MSK_STALLRQ)
#define Usb_clear_stalled()           (UEPSTAX &= ~MSK_STALLED)
#define Usb_stall_requested()         (UEPSTAX & MSK_STALLRQ)
#define Usb_stall_sent()              (UEPSTAX & MSK_STALLED)
#define Usb_read_byte()               (UEPDATX)
#define Usb_write_byte(x)             (UEPDATX = x)
#define Usb_endpoint_interrupt()      (UEPINT != 0 )


/*M**************************************************************************
* NAME: OUT endpoint management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the OUT endpoints.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define Usb_clear_rx()                (UEPSTAX &= ~MSK_RXOUT)
#define Usb_clear_rx_bank0()          (UEPSTAX &= ~MSK_RXOUTB0)
#define Usb_clear_rx_bank1()          (UEPSTAX &= ~MSK_RXOUTB1)
#define Usb_rx_complete()             (UEPSTAX & MSK_RXOUTB0B1)
unsigned char ReadEp(unsigned char EpNum,unsigned char *Data);
void WriteEp(unsigned char EpNum,unsigned char nLength,unsigned char *Data);
void EpEnable(void);
/*M**************************************************************************
* NAME: IN endpoint management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the IN endpoints.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define Usb_set_tx_ready()            (UEPSTAX |= MSK_TXRDY)
#define Usb_clear_tx_ready()          (UEPSTAX &= ~MSK_TXRDY)
#define Usb_clear_tx_complete()       (UEPSTAX &= ~MSK_TXCMPL)
#define Usb_tx_complete()             (UEPSTAX & MSK_TXCMPL)
#define Usb_tx_ready()                (UEPSTAX & MSK_TXRDY)


/*M**************************************************************************
* NAME: CONTROL endpoint management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the Control endpoints.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define Usb_clear_rx_setup()          (UEPSTAX &= ~MSK_RXSETUP)
#define Usb_setup_received()          (UEPSTAX & MSK_RXSETUP)
#define Usb_clear_DIR()               (UEPSTAX &= ~MSK_DIR)
#define Usb_set_DIR()                 (UEPSTAX |= MSK_DIR)


/*M**************************************************************************
* NAME: General USB management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the USB controller.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define Usb_enable()                  (USBCON |= MSK_USBE)
#define Usb_disable()                 (USBCON &= ~MSK_USBE)
#define Usb_detach()                  (USBCON |= MSK_DETACH)
#define Usb_attach()                  (USBCON &= ~MSK_DETACH)
#define Usb_clear_reset()             (USBINT &= ~MSK_EORINT)
#define Usb_clear_resume()            (USBINT &= ~MSK_WUPCPU)
#define Usb_clear_sof()               (USBINT &= ~MSK_SOFINT)
#define Usb_clear_suspend()           (USBINT &= ~MSK_SPINT)
#define Usb_suspend()                 (USBINT & MSK_SPINT)
#define Usb_resume()                  (USBINT & MSK_WUPCPU)
#define Usb_reset()                   (USBINT & MSK_EORINT)
#define Usb_sof()                     (USBINT & MSK_SOFINT)
#define Usb_configure_address(x)      (USBADDR = (0x80 | x))
#define Usb_set_CONFG()               (USBCON |= MSK_CONFG)
#define Usb_clear_CONFG()             (USBCON &= ~MSK_CONFG)
#define Usb_set_FADDEN()              (USBCON |= MSK_FADDEN)
#define Usb_clear_FADDEN()            (USBCON &= ~MSK_FADDEN)

/*M**************************************************************************
* NAME: USB interrupt management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the USB controller.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/

#define Usb_enable_int()              (IEN1 |= MSK_EUSB)
#define Usb_disable_int()             (IEN1 &= ~MSK_EUSB)

#define Usb_enable_reset_int()        (USBIEN |= MSK_EEORINT)
#define Usb_enable_resume_int()       (USBIEN |= MSK_EWUPCPU)
#define Usb_enable_sof_int()          (USBIEN |= MSK_ESOFINT)
#define Usb_enable_suspend_int()      (USBIEN |= MSK_ESPINT)
#define Usb_disable_reset_int()       (USBIEN &= ~MSK_EEORINT)
#define Usb_disable_resume_int()      (USBIEN &= ~MSK_EWUPCPU)
#define Usb_disable_sof_int()         (USBIEN &= ~MSK_ESOFINT)
#define Usb_disable_suspend_int()     (USBIEN &= ~MSK_ESPINT)

#define Usb_enable_ep_int(e)          {UEPIEN |= (0x01 << e))
#define Usb_disable_ep_int(e)         {UEPIEN &= ~(0x01 << e))



/*M**************************************************************************
* NAME: USB clock management 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
* These macros manage the USB clock.
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
#define Usb_set_EXT48()               (PLLCON |= MSK_EXT48)
#define Usb_clear_EXT48()             (PLLCON &= ~MSK_EXT48)

#define Pll_stop()                    (PLLCON &= ~MSK_PLLEN)
#define Pll_set_div(n)                (PLLDIV = n)
#define Pll_enable()                  (PLLCON |= MSK_PLLEN) 



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

void    usb_configure_endpoint       (Uchar , Uchar);
Uchar   usb_get_nb_byte              (void);
Uint16  usb_get_nb_byte_epw          (void);
Uchar*  usb_send_ep0_packet          (Uchar*, Uchar);
Uchar*  usb_send_packet              (Uchar , Uchar*, Uchar);
Uchar*  usb_read_packet              (Uchar , Uchar*, Uchar);
void    usb_reset_endpoint           (Uchar);
Uchar   usb_select_enpoint_interrupt (void);
void    usb_halt_endpoint            (Uchar);
void    configure_usb_clock          (void);



#endif  /* _USB_DRV_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品高清不卡| 久久综合九色综合97婷婷| 欧美日韩欧美一区二区| 国产精品久久久久影院| 91毛片在线观看| 依依成人综合视频| 在线亚洲欧美专区二区| 亚洲一区二区三区视频在线播放 | 日本不卡视频在线观看| 91超碰这里只有精品国产| 青青草精品视频| 欧美精品一区二区三| 国产精品亚洲第一区在线暖暖韩国| 国产欧美一区二区精品婷婷| av不卡一区二区三区| 一区二区三区在线视频观看58| 26uuu亚洲综合色欧美| 国产精品资源站在线| 日韩美女视频一区| 欧美日韩在线电影| 美国精品在线观看| 国产精品人人做人人爽人人添 | 国产精品私人影院| 色噜噜夜夜夜综合网| 免费成人在线网站| 国产精品网站在线播放| 在线视频中文字幕一区二区| 青青草国产成人av片免费| 中文在线一区二区 | 秋霞影院一区二区| 国产精品污www在线观看| 欧美色区777第一页| 精品一区在线看| 亚洲欧美一区二区三区孕妇| 日韩一区二区在线看| 成年人国产精品| 日精品一区二区三区| 中文字幕不卡三区| 日韩精品一区在线| 在线日韩一区二区| 成人综合在线视频| 麻豆91精品91久久久的内涵| 亚洲精品欧美综合四区| 精品av久久707| 欧美日韩国产经典色站一区二区三区| 国产传媒日韩欧美成人| 亚洲丶国产丶欧美一区二区三区| 国产午夜精品一区二区三区四区| 欧美日韩中文国产| fc2成人免费人成在线观看播放| 日韩激情视频在线观看| 亚洲男人电影天堂| 欧美激情一区不卡| 久久亚洲二区三区| 日韩写真欧美这视频| 欧美自拍丝袜亚洲| 99久久精品国产毛片| 成人一区二区三区| 精品综合免费视频观看| 石原莉奈在线亚洲二区| 亚洲一区二区三区四区在线观看 | 一区二区三区在线看| 国产女主播视频一区二区| 欧美不卡视频一区| 欧美一区二区三区在| 欧美老女人第四色| 欧美三级视频在线| 在线观看精品一区| 色狠狠av一区二区三区| 一本久道久久综合中文字幕 | 一本久道中文字幕精品亚洲嫩| 国产精品1区2区3区| 久久99久久精品| 日本不卡一二三| 麻豆91在线看| 狠狠色2019综合网| 国内一区二区在线| 国产伦精品一区二区三区免费迷 | 成人亚洲精品久久久久软件| 久久精品国产77777蜜臀| 日韩中文字幕亚洲一区二区va在线 | 中文字幕一区二区三区不卡在线| 久久久久亚洲综合| 国产欧美综合色| 中文字幕制服丝袜一区二区三区 | 欧美精品三级日韩久久| 91精品在线一区二区| 欧美一级高清大全免费观看| 欧美一区二区私人影院日本| 91精品国产欧美一区二区| 欧美一卡2卡3卡4卡| 日韩欧美在线123| 久久久三级国产网站| 国产日产欧美一区| 亚洲欧洲日本在线| 亚洲综合小说图片| 美女网站在线免费欧美精品| 精品一区二区三区影院在线午夜| 国产乱码精品1区2区3区| bt欧美亚洲午夜电影天堂| 欧美伊人久久大香线蕉综合69| 欧美日韩精品欧美日韩精品| 欧美成人video| 国产精品成人一区二区三区夜夜夜| 一级女性全黄久久生活片免费| 日日夜夜一区二区| 国产麻豆精品久久一二三| av日韩在线网站| 欧美精品乱码久久久久久| 精品精品欲导航| 综合自拍亚洲综合图不卡区| 亚洲一区二区三区中文字幕 | 日韩午夜av一区| 国产免费成人在线视频| 一区二区三区四区高清精品免费观看 | 欧美日韩一区不卡| 精品国产一区二区三区久久影院| 中文一区二区完整视频在线观看| 亚洲精品中文在线观看| 免费观看在线综合| 91美女片黄在线观看91美女| 欧美一区二区三区免费观看视频| 国产精品视频在线看| 日韩精品一二区| 99re视频精品| 久久新电视剧免费观看| 亚洲精品乱码久久久久久| 久草精品在线观看| 在线中文字幕不卡| 国产夜色精品一区二区av| 亚洲高清免费观看| av电影在线观看一区| 欧美电视剧在线观看完整版| 亚洲精品一卡二卡| 国产99精品国产| 91精品国产综合久久精品麻豆| 亚洲乱码国产乱码精品精小说 | 亚洲高清免费观看| 97国产一区二区| 久久久久久99久久久精品网站| 午夜伦理一区二区| 91亚洲永久精品| 国产日韩欧美精品电影三级在线| 日韩主播视频在线| 欧美亚洲综合色| 亚洲精品久久久蜜桃| 成人综合在线网站| 久久先锋资源网| 蜜桃av一区二区| 欧美久久久久久蜜桃| 亚洲国产精品久久人人爱| 99免费精品视频| 国产欧美一区二区精品秋霞影院| 人人精品人人爱| 欧美丰满高潮xxxx喷水动漫| 亚洲午夜一区二区| 91免费在线视频观看| 国产精品麻豆欧美日韩ww| 国产精品456| 国产日产亚洲精品系列| 国产成人在线电影| 久久你懂得1024| 韩国精品在线观看| 精品对白一区国产伦| 美脚の诱脚舐め脚责91| 欧美一级片免费看| 蜜桃视频一区二区三区在线观看| 欧美一区二区精品久久911| 日韩av中文在线观看| 日韩一区二区三免费高清| 日韩电影网1区2区| 欧美α欧美αv大片| 精品一区二区免费| 国产亚洲精品7777| 国产不卡视频一区二区三区| 中文字幕免费在线观看视频一区| 国产成人av电影在线| 国产精品久久久久久久久晋中| 成人小视频在线观看| 国产精品青草久久| 日本韩国精品在线| 亚洲一区二区三区美女| 69堂精品视频| 黄色小说综合网站| 亚洲国产高清在线观看视频| 93久久精品日日躁夜夜躁欧美| 亚洲激情男女视频| 欧美日韩激情一区| 久久精品国产亚洲一区二区三区| 欧美精品一区二区三区蜜桃视频| 成人国产精品免费观看动漫| 亚洲少妇屁股交4| 6080亚洲精品一区二区| 国产呦精品一区二区三区网站| 国产视频不卡一区| 在线免费观看一区| 久久国产乱子精品免费女| 国产精品国产三级国产普通话99 | av成人免费在线观看| 亚洲一区二区三区美女|