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

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

?? usb_drv.h

?? atmel c5122 USB C51程序
?? H
字號:
/*H**************************************************************************
* NAME:         usb_drv.h         
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      c5122-scib-usb-hid-2_4_0      
* REVISION:     1.13     
*----------------------------------------------------------------------------
* 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)) ;

/* {for langdoc}*/

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

/* {for langdoc}*/

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

/* {for langdoc}*/

/*M**************************************************************************
* NAME: Usb_test_it_ep
*----------------------------------------------------------------------------
* PARAMS:   end point number
* return:   0 if no interrupt record in the end point else different of 0
*----------------------------------------------------------------------------
* PURPOSE: 
* This function check if interrupt is pending in the end point
*----------------------------------------------------------------------------
* EXAMPLE:
* if (Usb_test_it_ep(3)) // True if interrupt on endpoint 3
*****************************************************************************/
#define Usb_test_it_ep(ep_num)        (UEPINT & ((Uchar)1<<(ep_num)))

/* {for langdoc}*/

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

/* {for langdoc}*/

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

/* {for langdoc}*/

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

/* {for langdoc}*/

/*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)
//-----------------------------------------------------------------------------
//BUG#227 : Function Usb_clear_resume() moved to usb_drv.c file to work around the 
//USB macro issue at 24 Mhz. New function Usb_clear_wakeup_cpu defined and called
//by Usb_clear_resume() function.
//#define Usb_clear_resume()            (USBINT &= ~MSK_WUPCPU)
#define Usb_clear_wakeup_cpu()        (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_address()                 (USBADDR & 0x7F)
#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)
#define Usb_set_suspend_clock()       (USBCON |= MSK_SUSPCLK)
#define Usb_clear_suspend_clock()     (USBCON &= ~MSK_SUSPCLK)

#define usb_send_packet(ep_num,tbuf,data_length)     (Usb_select_ep(ep_num), usb_send_right_packet(tbuf,data_length)) 
#define usb_read_packet(ep_num, rbuf,data_length)   (Usb_select_ep(ep_num), usb_read_right_packet(rbuf,data_length))

/* {for langdoc}*/

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


/* {for langdoc}*/

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

/* {for langdoc}*/

/*_____ 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_right_packet        (Uchar*, Uchar);
Uchar*  usb_read_right_packet        ( Uchar*, Uchar);
void    usb_reset_endpoint           (Uchar);
Uchar   usb_select_enpoint_interrupt (void);
void    usb_halt_endpoint            (Uchar);
void    configure_usb_clock          (void);
void    Usb_clear_resume             (void);


#endif  /* _USB_DRV_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www国产亚洲精品久久麻豆| 亚洲欧洲av在线| 国产精品久久福利| 色综合久久综合网| 国产很黄免费观看久久| 日韩激情一区二区| 一区二区成人在线| 亚洲欧美日韩人成在线播放| 久久久久免费观看| 精品国内片67194| 欧美一级理论性理论a| av不卡在线播放| 97久久超碰国产精品| 国产超碰在线一区| 欧美a级理论片| 美女被吸乳得到大胸91| 日韩国产欧美三级| 天天色天天爱天天射综合| 蜜臀久久99精品久久久画质超高清 | 99re热这里只有精品视频| 国产91精品一区二区| 久久精品国产在热久久| 天天综合日日夜夜精品| 日本午夜精品一区二区三区电影| 亚洲综合一区在线| 一区二区三区久久久| 一区二区三区精品久久久| 亚洲精品乱码久久久久久黑人 | 精品国产乱子伦一区| 日韩写真欧美这视频| 91精品国产高清一区二区三区蜜臀| 在线观看国产一区二区| 欧美三级三级三级| 欧美视频你懂的| 91精品黄色片免费大全| 欧美一区二区三区免费| 日韩免费性生活视频播放| 精品欧美黑人一区二区三区| 久久久久久久av麻豆果冻| 日本一区二区视频在线观看| 欧美激情一区在线观看| 日韩伦理电影网| 亚洲国产精品久久艾草纯爱| 五月天精品一区二区三区| 日韩电影在线观看电影| 国产一本一道久久香蕉| 成人福利视频网站| 欧美视频在线不卡| 欧美一区二区三区影视| 3atv一区二区三区| 国产丝袜欧美中文另类| 国产精品沙发午睡系列990531| 亚洲私人黄色宅男| 亚洲国产美国国产综合一区二区| 日韩制服丝袜av| 国产精品伊人色| 国产欧美一区二区精品性| 亚洲欧洲成人自拍| 五月天激情综合| 国产一区 二区| 一本色道a无线码一区v| 欧美一卡在线观看| 国产精品―色哟哟| 亚洲国产视频一区二区| 久久激情五月激情| 99久久国产综合精品色伊| 欧美亚男人的天堂| 久久九九全国免费| 亚洲卡通动漫在线| 精品一区二区三区免费视频| 北岛玲一区二区三区四区| 欧美三级在线看| 久久九九全国免费| 午夜精品福利一区二区蜜股av| 成人激情免费电影网址| 91麻豆精品国产91久久久更新时间| 久久九九影视网| 日韩不卡免费视频| 色婷婷久久久综合中文字幕| 精品成人在线观看| 日本亚洲一区二区| 一本大道av伊人久久综合| 日韩三级中文字幕| 亚洲国产成人va在线观看天堂| 国产高清精品久久久久| 欧美日韩国产小视频在线观看| 国产拍揄自揄精品视频麻豆| 久久99国内精品| 精品视频全国免费看| 中文字幕亚洲欧美在线不卡| 国产高清不卡一区| 日韩美女一区二区三区四区| 亚洲午夜久久久久中文字幕久| caoporn国产精品| 久久久久久9999| 另类小说欧美激情| 日韩一区二区三区免费看 | 蜜臀99久久精品久久久久久软件| 91猫先生在线| 国产精品沙发午睡系列990531| 国产成人午夜99999| 日韩精品一区二区三区蜜臀 | 久久久久久**毛片大全| 日韩不卡一区二区| 91精品国产丝袜白色高跟鞋| 亚洲综合一区二区精品导航| 成人精品鲁一区一区二区| 日本一区二区三区高清不卡| 久久不见久久见中文字幕免费| 欧美性猛片aaaaaaa做受| 国产精品美日韩| 久久99日本精品| 91精品欧美综合在线观看最新 | 欧美午夜免费电影| 东方aⅴ免费观看久久av| 久久亚洲捆绑美女| 九九**精品视频免费播放| 9191精品国产综合久久久久久| 亚洲国产一区视频| 色综合欧美在线视频区| 亚洲一区免费观看| 在线观看国产一区二区| 一区二区激情视频| 91精品国产91久久久久久最新毛片| 亚洲成人先锋电影| 欧美日韩精品久久久| 亚洲bt欧美bt精品| 精品久久久久久久久久久久包黑料| 日韩经典中文字幕一区| 欧美一区二区在线看| 国产一区二区三区久久久| 久久网站热最新地址| 国产电影一区在线| 亚洲麻豆国产自偷在线| 欧美在线999| 国产精品久久一级| 欧美日韩一区二区三区免费看| 亚洲sss视频在线视频| 91精品国产色综合久久| 国产一区二区三区免费观看| 久久精品欧美一区二区三区不卡| 国产精品欧美极品| 色综合 综合色| 日韩av在线免费观看不卡| 国产清纯美女被跳蛋高潮一区二区久久w| 99在线精品观看| 日韩av一区二| 国产精品嫩草影院av蜜臀| 欧美三级一区二区| 国产福利一区二区三区| 亚洲成年人网站在线观看| 久久婷婷综合激情| 欧美丝袜丝nylons| 国产成人精品一区二| 亚洲一区二区精品3399| 久久久久久久久久久久久久久99| 91丨porny丨国产| 久久精品国产亚洲高清剧情介绍| 国产日本欧洲亚洲| 5566中文字幕一区二区电影| 成a人片国产精品| 免费久久99精品国产| 亚洲视频在线一区观看| 精品国产自在久精品国产| 欧美自拍丝袜亚洲| 成人三级伦理片| 日av在线不卡| 夜夜精品浪潮av一区二区三区| 精品国产第一区二区三区观看体验| 在线免费一区三区| 国产成人av电影在线观看| 三级成人在线视频| √…a在线天堂一区| 精品国产电影一区二区| 欧美人牲a欧美精品| 色综合中文字幕| 成人精品视频一区| 韩国v欧美v亚洲v日本v| 石原莉奈在线亚洲三区| 亚洲男同1069视频| 国产精品美女久久久久久久| www亚洲一区| 日韩亚洲欧美一区二区三区| 欧美中文字幕久久| 99久久婷婷国产综合精品| 国产九九视频一区二区三区| 轻轻草成人在线| 丝袜美腿亚洲综合| 亚洲国产一区在线观看| 亚洲欧美日韩电影| 国产精品911| 久久精品国产网站| 日本不卡视频在线观看| 天天操天天色综合| 亚洲国产一区二区a毛片| 一区二区在线观看免费| 国产精品高清亚洲| 中文字幕在线不卡一区| 国产精品拍天天在线| 国产精品视频在线看|