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

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

?? usbdrvasm15.inc

?? USBasp
?? INC
?? 第 1 頁 / 共 2 頁
字號:
/* Name: usbdrvasm15.inc * Project: AVR USB driver * Author: contributed by V. Bosch * Creation Date: 2007-08-06 * Tabsize: 4 * Copyright: (c) 2007 by OBJECTIVE DEVELOPMENT Software GmbH * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) * Revision: $Id: usbdrvasm15.inc 692 2008-11-07 15:07:40Z cs $ *//* Do not link this file! Link usbdrvasm.S instead, which includes the * appropriate implementation! *//*General Description:This file is the 15 MHz version of the asssembler part of the USB driver. Itrequires a 15 MHz crystal (not a ceramic resonator and not a calibrated RCoscillator).See usbdrv.h for a description of the entire driver.Since almost all of this code is timing critical, don't change unless youreally know what you are doing! Many parts require not only a maximum numberof CPU cycles, but even an exact number of cycles!*/;max stack usage: [ret(2), YL, SREG, YH, bitcnt, shift, x1, x2, x3, x4, cnt] = 12 bytes;nominal frequency: 15 MHz -> 10.0 cycles per bit, 80.0 cycles per byte; Numbers in brackets are clocks counted from center of last sync bit; when instruction starts;----------------------------------------------------------------------------; order of registers pushed: ;	YL, SREG [sofError] YH, shift, x1, x2, x3, bitcnt, cnt, x4;----------------------------------------------------------------------------USB_INTR_VECTOR:                  push    YL                   ;2 	push only what is necessary to sync with edge ASAP    in      YL, SREG             ;1     push    YL                   ;2 ;----------------------------------------------------------------------------; Synchronize with sync pattern:;;   sync byte (D-) pattern LSb to MSb: 01010100 [1 = idle = J, 0 = K];   sync up with J to K edge during sync pattern -- use fastest possible loops;The first part waits at most 1 bit long since we must be in sync pattern.;YL is guarenteed to be < 0x80 because I flag is clear. When we jump to;waitForJ, ensure that this prerequisite is met.waitForJ:    inc     YL    sbis    USBIN, USBMINUS    brne    waitForJ        ; just make sure we have ANY timeout;-------------------------------------------------------------------------------; The following code results in a sampling window of < 1/4 bit ;	which meets the spec.;-------------------------------------------------------------------------------waitForK:			 ;-     sbis    USBIN, USBMINUS      ;1 [00] <-- sample    rjmp    foundK               ;2 [01]    sbis    USBIN, USBMINUS	 ;	 <-- sample    rjmp    foundK    sbis    USBIN, USBMINUS	 ;	 <-- sample    rjmp    foundK    sbis    USBIN, USBMINUS	 ;	 <-- sample    rjmp    foundK    sbis    USBIN, USBMINUS	 ;	 <-- sample    rjmp    foundK    sbis    USBIN, USBMINUS	 ;	 <-- sample    rjmp    foundK#if USB_COUNT_SOF    lds     YL, usbSofCount    inc     YL    sts     usbSofCount, YL#endif  /* USB_COUNT_SOF */#ifdef USB_SOF_HOOK    USB_SOF_HOOK#endif    rjmp    sofError;------------------------------------------------------------------------------; {3, 5} after falling D- edge, average delay: 4 cycles [we want 5 for ;	center sampling] ; 	we have 1 bit time for setup purposes, then sample again. ;	Numbers in brackets are cycles from center of first sync (double K) ;	bit after the instruction;------------------------------------------------------------------------------foundK:                          ;- [02]    lds     YL, usbInputBufOffset;2 [03+04]	tx loop    push    YH                   ;2 [05+06]    clr     YH                   ;1 [07]    subi    YL, lo8(-(usbRxBuf)) ;1 [08] 	[rx loop init]    sbci    YH, hi8(-(usbRxBuf)) ;1 [09] 	[rx loop init]    push    shift                ;2 [10+11]    ser	    shift		 ;1 [12]    sbis    USBIN, USBMINUS      ;1 [-1] [13] <--sample:we want two bits K (sample 1 cycle too early)    rjmp    haveTwoBitsK         ;2 [00] [14]    pop     shift                ;2 	 [15+16] undo the push from before    pop     YH 			 ;2 	 [17+18] undo the push from before    rjmp    waitForK             ;2 	 [19+20] this was not the end of sync, retry; The entire loop from waitForK until rjmp waitForK above must not exceed two; bit times (= 20 cycles).;----------------------------------------------------------------------------; push more registers and initialize values while we sample the first bits:;----------------------------------------------------------------------------haveTwoBitsK:			;- [01]    push    x1              	;2 [02+03]    push    x2              	;2 [04+05]    push    x3              	;2 [06+07]    push    bitcnt              ;2 [08+09]	    in      x1, USBIN       	;1 [00] [10] <-- sample bit 0    bst     x1, USBMINUS    	;1 [01]    bld     shift, 0        	;1 [02]    push    cnt             	;2 [03+04]    ldi     cnt, USB_BUFSIZE	;1 [05]     push    x4              	;2 [06+07] tx loop    rjmp    rxLoop          	;2 [08];----------------------------------------------------------------------------; Receiver loop (numbers in brackets are cycles within byte after instr);----------------------------------------------------------------------------unstuff0:               	;- [07] (branch taken)    andi    x3, ~0x01   	;1 [08]    mov     x1, x2      	;1 [09] x2 contains last sampled (stuffed) bit    in      x2, USBIN   	;1 [00] [10] <-- sample bit 1 again    andi    x2, USBMASK 	;1 [01]    breq    se0Hop         	;1 [02] SE0 check for bit 1     ori     shift, 0x01 	;1 [03] 0b00000001    nop				;1 [04]    rjmp    didUnstuff0 	;2 [05];-----------------------------------------------------unstuff1:               	;- [05] (branch taken)    mov     x2, x1      	;1 [06] x1 contains last sampled (stuffed) bit    andi    x3, ~0x02   	;1 [07]    ori     shift, 0x02 	;1 [08] 0b00000010    nop                 	;1 [09]    in      x1, USBIN   	;1 [00] [10] <-- sample bit 2 again    andi    x1, USBMASK 	;1 [01]    breq    se0Hop         	;1 [02] SE0 check for bit 2     rjmp    didUnstuff1 	;2 [03];-----------------------------------------------------unstuff2:               	;- [05] (branch taken)    andi    x3, ~0x04   	;1 [06]    ori     shift, 0x04 	;1 [07] 0b00000100    mov     x1, x2      	;1 [08] x2 contains last sampled (stuffed) bit    nop                 	;1 [09]    in      x2, USBIN   	;1 [00] [10] <-- sample bit 3    andi    x2, USBMASK 	;1 [01]    breq    se0Hop         	;1 [02] SE0 check for bit 3     rjmp    didUnstuff2 	;2 [03];-----------------------------------------------------unstuff3:               	;- [00] [10]  (branch taken)    in      x2, USBIN   	;1 [01] [11] <-- sample stuffed bit 3 one cycle too late    andi    x2, USBMASK 	;1 [02]    breq    se0Hop         	;1 [03] SE0 check for stuffed bit 3     andi    x3, ~0x08   	;1 [04]    ori     shift, 0x08 	;1 [05] 0b00001000    rjmp    didUnstuff3 	;2 [06];----------------------------------------------------------------------------; extra jobs done during bit interval:;; bit 0:    store, clear [SE0 is unreliable here due to bit dribbling in hubs], ; 		overflow check, jump to the head of rxLoop; bit 1:    SE0 check; bit 2:    SE0 check, recovery from delay [bit 0 tasks took too long]; bit 3:    SE0 check, recovery from delay [bit 0 tasks took too long]; bit 4:    SE0 check, none; bit 5:    SE0 check, none; bit 6:    SE0 check, none; bit 7:    SE0 check, reconstruct: x3 is 0 at bit locations we changed, 1 at others;----------------------------------------------------------------------------rxLoop:				;- [09]    in      x2, USBIN   	;1 [00] [10] <-- sample bit 1 (or possibly bit 0 stuffed)    andi    x2, USBMASK 	;1 [01]    brne    SkipSe0Hop		;1 [02]se0Hop:				;- [02]    rjmp    se0         	;2 [03] SE0 check for bit 1 SkipSe0Hop:			;- [03]    ser     x3          	;1 [04]    andi    shift, 0xf9 	;1 [05] 0b11111001    breq    unstuff0    	;1 [06]didUnstuff0:			;- [06]    eor     x1, x2      	;1 [07]    bst     x1, USBMINUS	;1 [08]    bld     shift, 1    	;1 [09]     in      x1, USBIN   	;1 [00] [10] <-- sample bit 2 (or possibly bit 1 stuffed)    andi    x1, USBMASK 	;1 [01]    breq    se0Hop         	;1 [02] SE0 check for bit 2     andi    shift, 0xf3 	;1 [03] 0b11110011    breq    unstuff1    	;1 [04] do remaining work for bit 1didUnstuff1:			;- [04]    eor     x2, x1      	;1 [05]    bst     x2, USBMINUS	;1 [06]    bld     shift, 2    	;1 [07]    nop2			;2 [08+09]    in      x2, USBIN   	;1 [00] [10] <-- sample bit 3 (or possibly bit 2 stuffed)    andi    x2, USBMASK 	;1 [01]    breq    se0Hop         	;1 [02] SE0 check for bit 3     andi    shift, 0xe7 	;1 [03] 0b11100111    breq    unstuff2    	;1 [04]didUnstuff2:			;- [04]    eor     x1, x2      	;1 [05]    bst     x1, USBMINUS	;1 [06]    bld     shift, 3    	;1 [07]didUnstuff3:			;- [07]    andi    shift, 0xcf 	;1 [08] 0b11001111    breq    unstuff3    	;1 [09]    in      x1, USBIN   	;1 [00] [10] <-- sample bit 4    andi    x1, USBMASK 	;1 [01]    breq    se0Hop         	;1 [02] SE0 check for bit 4    eor     x2, x1      	;1 [03]    bst     x2, USBMINUS	;1 [04]    bld     shift, 4    	;1 [05]didUnstuff4:			;- [05]

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区成人在线| 欧美色欧美亚洲另类二区| 日本精品一级二级| 精品国产乱码久久久久久闺蜜| 中文字幕中文字幕中文字幕亚洲无线 | 欧美午夜精品久久久久久孕妇| 精品免费视频一区二区| 亚洲激情自拍偷拍| 成人av电影在线播放| 久久夜色精品一区| 精品在线你懂的| 日韩一区二区在线免费观看| 亚洲午夜羞羞片| 91成人免费在线视频| 中文字幕一区二区三区在线不卡 | 成人av电影在线| 久久嫩草精品久久久精品一| 视频一区在线视频| 欧美日韩一本到| 亚洲福利一区二区三区| 色婷婷久久99综合精品jk白丝| 国产精品三级电影| 粉嫩一区二区三区在线看| www精品美女久久久tv| 日韩不卡一二三区| 日韩视频123| 美女视频第一区二区三区免费观看网站| 色屁屁一区二区| 亚洲精品国产一区二区精华液 | 久久er99热精品一区二区| 精品国产乱码久久久久久蜜臀| 亚洲国产一区二区视频| 欧美视频一区二区三区在线观看| 亚洲精品乱码久久久久久| 在线一区二区三区| 五月天中文字幕一区二区| 欧美日韩在线观看一区二区| 亚洲已满18点击进入久久| 欧美日韩免费高清一区色橹橹| 亚洲成av人片在线| 日韩午夜在线影院| 国产一区在线视频| 国产精品国产三级国产普通话三级 | 国产午夜精品久久久久久久 | 激情欧美日韩一区二区| www成人在线观看| 国产成人av影院| 国产精品视频一二三区| 色狠狠色噜噜噜综合网| 五月天一区二区| 久久夜色精品一区| 99久久精品99国产精品| 亚洲福中文字幕伊人影院| 欧美成人精品3d动漫h| 国产91在线|亚洲| 一区二区三区四区视频精品免费| 欧美色图天堂网| 蜜桃免费网站一区二区三区| 26uuu国产一区二区三区| 成人v精品蜜桃久久一区| 亚洲一线二线三线久久久| 日韩欧美一区二区在线视频| 福利视频网站一区二区三区| 一区二区三区国产精华| 日韩欧美在线一区二区三区| 丰满白嫩尤物一区二区| 天天综合色天天综合| 久久久www成人免费无遮挡大片| 国产98色在线|日韩| 天堂影院一区二区| 国产精品系列在线| 日韩色在线观看| 色婷婷综合视频在线观看| 久久成人久久鬼色| 亚洲午夜久久久久中文字幕久| 欧美va天堂va视频va在线| 在线精品亚洲一区二区不卡| 国产一区二区免费视频| 五月天欧美精品| 综合av第一页| 欧美一区三区二区| 99re免费视频精品全部| zzijzzij亚洲日本少妇熟睡| 日韩va亚洲va欧美va久久| 综合色天天鬼久久鬼色| 久久婷婷国产综合精品青草| 欧美午夜在线观看| 99精品国产一区二区三区不卡| 久久99日本精品| 一区二区三区在线看| 2021中文字幕一区亚洲| 欧美人体做爰大胆视频| 色就色 综合激情| 99精品欧美一区二区三区小说| 久久99精品网久久| 青娱乐精品在线视频| 亚洲高清免费一级二级三级| 亚洲色图欧美激情| 综合色中文字幕| 中文欧美字幕免费| 久久影院午夜论| 精品国产sm最大网站| 制服丝袜中文字幕亚洲| 欧美色视频在线观看| 在线亚洲欧美专区二区| 在线观看三级视频欧美| 色婷婷av一区| 在线看国产一区| 欧美丝袜丝交足nylons| 在线中文字幕一区| 欧美吻胸吃奶大尺度电影| 欧美主播一区二区三区美女| 色综合天天综合色综合av | 激情偷乱视频一区二区三区| 狂野欧美性猛交blacked| 奇米777欧美一区二区| 免费成人在线影院| 另类人妖一区二区av| 韩日av一区二区| 国产成人av一区二区三区在线| 国产乱人伦偷精品视频免下载| 国产一区二区三区四区五区入口| 国产乱码精品一区二区三| 国产aⅴ综合色| 91污在线观看| 欧美人体做爰大胆视频| 日韩欧美黄色影院| 国产欧美日韩在线| 亚洲欧美一区二区不卡| 亚洲成人动漫一区| 免费av成人在线| 丁香另类激情小说| 色综合久久综合中文综合网| 欧美性猛交xxxx乱大交退制版| 91精品一区二区三区久久久久久| 日韩欧美中文字幕一区| 国产亚洲精品bt天堂精选| 国产精品国产三级国产三级人妇 | 色综合亚洲欧洲| 欧美日韩中文另类| 精品国产欧美一区二区| 亚洲色图20p| 蜜臂av日日欢夜夜爽一区| 成人高清在线视频| 欧美丝袜丝交足nylons图片| 精品国产91乱码一区二区三区| 国产精品区一区二区三区| 亚洲成av人片在www色猫咪| 韩国一区二区在线观看| 91福利小视频| 久久久久国产精品免费免费搜索| 一区二区三区在线免费视频| 久久精品国产久精国产爱| 色网综合在线观看| 欧美本精品男人aⅴ天堂| 亚洲欧美一区二区视频| 青青青伊人色综合久久| 99久久精品国产麻豆演员表| 日韩一级免费观看| 最新热久久免费视频| 另类综合日韩欧美亚洲| 在线观看免费一区| 久久久久亚洲蜜桃| 日日摸夜夜添夜夜添精品视频| 成人一区二区三区在线观看| 欧美日韩第一区日日骚| 国产精品萝li| 国产专区综合网| 欧美日韩国产成人在线91| 国产精品天天看| 久久99久久久欧美国产| 欧美日韩精品一区二区三区四区 | 亚洲丰满少妇videoshd| aaa国产一区| 久久久亚洲高清| 免费欧美在线视频| 538在线一区二区精品国产| 亚洲精品网站在线观看| 成人一区二区三区在线观看| 精品人伦一区二区色婷婷| 首页国产丝袜综合| 欧美伦理电影网| 亚洲午夜精品一区二区三区他趣| av在线一区二区| 国产精品色呦呦| 国产999精品久久久久久绿帽| 日韩欧美一二三区| 免费成人在线影院| 日韩午夜在线影院| 捆绑变态av一区二区三区| 欧美高清视频一二三区| 偷拍日韩校园综合在线| 欧美三级三级三级爽爽爽| 亚洲一二三级电影| 欧美日韩国产成人在线免费| 亚洲国产精品久久不卡毛片| 欧美日韩精品专区| 免费欧美日韩国产三级电影| 欧美一区二区久久| 久久成人免费网站|