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

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

?? sw-uart-asm.s

?? AVR s AVR-CDC
?? S
字號:

/* Name: sw-uart.S * Project: AVR USB driver for CDC interface on USB1.1 * Author: Osamu Tamura * Creation Date: 2006-05-12 * Tabsize: 4 * Copyright: (c) 2006 by Recursion Co., Ltd. * License: Proprietary, free under certain conditions. See Documentation. *//*General Description:    This module implements the assembler part of the USB-CDC driver.Note: This module violates the rule that interrupts must not be disabled forlonger than a couple of instructions (see usbdrv.h). Running UART interrupthandlers with sei as the first instruction is not possible because it wouldrecurse immediately (the cause of the interrupt has not been removed). Ifwe collect the data and then call sei(), we win little. We therefore decideto violate the rule. The effect on USB operation is, that packages may belost. This is equivalent to a package being dropped due to a CRC error. Thehost will therefore retry the transfer after a timeout. It is therefore verylikely that no effect is seen at the application layer.*/
#include "iarcompat.h"#ifndef __IAR_SYSTEMS_ASM__    /* configs for io.h */#   define __SFR_OFFSET 0#   define _VECTOR(N)   __vector_ ## N   /* io.h does not define this for asm */#   include <avr/io.h> /* for CPU I/O register definitions and vectors */#endif  /* __IAR_SYSTEMS_ASM__ */#include "usbdrv.h" /* for common defs */#include "uart.h"
#if !UART_CFG_HAVE_USART
/* register names */#define x1      r16#define x2      r17/* Some assembler dependent definitions and declarations: */#ifdef __IAR_SYSTEMS_ASM__#   define nop2     rjmp    $+2 /* jump to next instruction */#   define XL       r26#   define XH       r27#   define YL       r28#   define YH       r29#   define ZL       r30#   define ZH       r31#   define lo8(x)   LOW(x)#   define hi8(x)   ((x)>>8)    /* not HIGH to allow XLINK to make a proper range check */    public  bit_reverse

#   ifndef IVT_BASE_ADDRESS#       define IVT_BASE_ADDRESS 0#   endif    ASEG    ORG     PCINT0_vect + IVT_BASE_ADDRESS    rjmp    SIG_PIN_CHANGE    ORG     TIM1_COMPA_vect + IVT_BASE_ADDRESS    rjmp    SIG_OUTPUT_COMPARE1A    ORG     USI_OVF_vect + IVT_BASE_ADDRESS    rjmp    SIG_USI_OVERFLOW    RSEG    CODE#else /* __IAR_SYSTEMS_ASM__ */    .text
    .global SIG_PIN_CHANGE    .type   SIG_PIN_CHANGE, @function    .global SIG_OUTPUT_COMPARE1A    .type   SIG_OUTPUT_COMPARE1A, @function    .global SIG_USI_OVERFLOW    .type   SIG_USI_OVERFLOW, @function
    .global bit_reverse
#endif /* __IAR_SYSTEMS_ASM__ */
; ######################## RS-232C functions ########################
SIG_PIN_CHANGE:    out     GPIOR0, x1      ;1

    in      x1, DT1A        ;1  1st bit sampling delay
    out     TCNT1, x1       ;1
    ldi     x1, 9           ;1  set rx_bitcounter = 9
    out     OCR1C, x1       ;1
    ldi     x1, 7           ;1  start timer
    out     TCCR1, x1       ;1

    ldi     x1, (1<<USB_INTR_ENABLE_BIT)  ;1
    out     USB_INTR_ENABLE, x1  ;1   stop pin change interrupt

    in      x1, GPIOR0      ;1
    reti                    ;4   {14,14}


SIG_OUTPUT_COMPARE1A:    out     GPIOR0, x1      ;1
    in      x1, SREG        ;1    out     GPIOR1, x1      ;1

    in      x1, OCR1C       ;1  rx_bitcounter--
    dec     x1              ;1
    out     OCR1C, x1       ;1
    breq    tm1_stopbit     ;1/2

    in      x1, OCR1B       ;1
    lsr     x1              ;1  data shift
#if UART_CFG_INVERT
    sbis    UART_PIN, UART_CFG_RXD         ;1/2
#else
    sbic    UART_PIN, UART_CFG_RXD         ;1/2
#endif
    ori     x1, 0x80        ;1
    out     OCR1B, x1       ;1

    out     GPIOR2, x2      ;1
    in      x1, TCNT1       ;1
    in      x2, OCR1A       ;1
    sub     x1, x2          ;1
    out     TCNT1, x1       ;1

    in      x2, GPIOR2      ;1
    in      x1, GPIOR1      ;1
    out     SREG, x1        ;1    in      x1, GPIOR0      ;1
    reti                    ;4

tm1_stopbit:
    out     TCCR1, x1       ;1  stop timer1

    out     DT1B, x1        ;1  rx_data ready flag
    in      x1, OCR1B       ;1
    out     EEDR, x1        ;1  rx_data

    ldi     x1, (1<<PCIF)   ;1
    out     GIFR, x1        ;1
    ldi     x1, (1<<USB_INTR_ENABLE_BIT)|(1<<PCIE)  ;1
    out     USB_INTR_ENABLE, x1  ;1   enable pin change interrupt

    in      x1, GPIOR1      ;1
    out     SREG, x1        ;1    in      x1, GPIOR0      ;1
    reti                    ;4   {23,25}


SIG_USI_OVERFLOW:
    out     GPIOR0, x1     	;1

	sbic	EEARL, 0		;1/2
	rjmp	usi_stopbit    	;2

	ldi		x1, 0x4b		;1
	out		USISR, x1		;1

	out		EEARL, x1		;1

	in		x1, OCR0B		;1
	out		USIDR, x1		;1  transfer upper 4 bits

    in      x1, GPIOR0     	;1
    reti                   	;4

usi_stopbit:
	ldi		x1, (1<<USIOIF)	;1
	out		USISR, x1		;1

    ldi     x1, 0           ;1
	out		TCCR0B, x1		;1  stop timer0

    in      x1, GPIOR0		;1
    reti					;4   {13,13}


;   extern uchar    bit_reverse( uchar x );

#ifdef __IAR_SYSTEMS_ASM__#define inb      r16#define outb     r17#else
#define inb      r24#define outb     r25#endif

bit_reverse:
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    rol     inb
    ror     outb
    mov     inb, outb
    ret

#endif		/* UART_CFG_HAVE_USART	*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区| 9191精品国产综合久久久久久| 色婷婷综合久久久久中文一区二区| 欧美日韩国产欧美日美国产精品| 337p粉嫩大胆色噜噜噜噜亚洲| 一区二区三区精密机械公司| 国产精品一区专区| 日韩亚洲欧美在线观看| 亚洲激情av在线| 99视频在线观看一区三区| 精品对白一区国产伦| 日韩电影网1区2区| 欧美在线观看你懂的| 亚洲精品国产第一综合99久久| 国产999精品久久久久久绿帽| 日韩欧美中文字幕精品| 视频在线观看一区| 欧美日韩国产一二三| 亚洲精品五月天| 91精彩视频在线| 一区二区高清视频在线观看| 99久久精品免费看| 国产精品麻豆一区二区 | 成人精品鲁一区一区二区| 欧美一区二区三区系列电影| 亚洲综合激情小说| 在线免费观看成人短视频| 亚洲乱码国产乱码精品精小说| 丁香啪啪综合成人亚洲小说| 国产日韩成人精品| 高清在线不卡av| 日韩理论片网站| 一本大道久久a久久综合婷婷| 国产精品久久精品日日| 91浏览器入口在线观看| 亚洲情趣在线观看| 91精品福利视频| 午夜精品久久久久久不卡8050| 欧美日韩一级二级三级| 天天av天天翘天天综合网| 欧美日韩成人综合| 理论电影国产精品| 国产三级精品三级| 成人精品视频一区二区三区| 亚洲视频图片小说| 欧美日韩欧美一区二区| 日韩不卡一二三区| 国产亚洲欧美一级| 色综合一个色综合| 午夜久久久久久久久| 精品国产露脸精彩对白| 国产精品一区二区三区乱码| 1区2区3区精品视频| 欧美三级一区二区| 国内精品在线播放| 亚洲男帅同性gay1069| 欧美私模裸体表演在线观看| 九九在线精品视频| 国产精品久久久久婷婷二区次| 色乱码一区二区三区88| 免费高清在线一区| 中文在线一区二区| 欧美日韩国产在线观看| 国产成人在线影院| 亚洲香肠在线观看| 久久午夜电影网| 在线观看欧美精品| 国产精品综合久久| 五月天一区二区| 国产精品久久久久久久岛一牛影视 | 日本成人在线视频网站| 久久免费国产精品| 欧美视频中文一区二区三区在线观看| 九色综合狠狠综合久久| 一区二区三区欧美激情| 国产日韩欧美高清| 91精品国产高清一区二区三区| 国产 日韩 欧美大片| 国产一区二区伦理片| 亚洲欧美日韩精品久久久久| 欧美tickling网站挠脚心| 91老司机福利 在线| 国产成人亚洲精品青草天美| 爽好久久久欧美精品| 亚洲精品国产无天堂网2021 | 欧美日韩高清不卡| 成人av资源站| 国产在线精品免费| 视频一区二区三区中文字幕| 尤物在线观看一区| 国产精品成人一区二区三区夜夜夜| 日韩写真欧美这视频| 欧美性大战久久久久久久蜜臀| 成人精品电影在线观看| 国产成人午夜99999| 裸体歌舞表演一区二区| 性感美女久久精品| 亚洲国产成人精品视频| 亚洲免费av高清| 亚洲精品亚洲人成人网在线播放| 国产精品久久久久久妇女6080| 久久久天堂av| 久久精品这里都是精品| 日韩精品一区二区三区蜜臀 | 美女一区二区在线观看| 亚洲第一狼人社区| 亚洲午夜三级在线| 亚洲激情图片小说视频| 亚洲理论在线观看| 国产精品久久精品日日| 亚洲欧美影音先锋| 日韩一区在线免费观看| 亚洲精品日韩一| 一区二区三区在线观看欧美| 亚洲精品伦理在线| 精品在线播放午夜| 久草中文综合在线| 国产在线精品一区二区夜色| 国内精品不卡在线| 盗摄精品av一区二区三区| 成人午夜短视频| 99精品桃花视频在线观看| 91香蕉视频黄| 欧美日韩一区三区| 91精品国产乱码| 久久网这里都是精品| 国产精品入口麻豆九色| 综合色天天鬼久久鬼色| 亚洲午夜日本在线观看| 亚洲一区二区精品3399| 麻豆一区二区在线| 国产福利一区在线| 一本大道综合伊人精品热热| 欧美日韩夫妻久久| 久久久综合视频| 亚洲三级在线免费观看| 亚洲国产精品尤物yw在线观看| 日本在线不卡一区| 国产一区高清在线| 99在线精品一区二区三区| 在线观看欧美日本| 精品国产乱码久久久久久1区2区| 国产女人18水真多18精品一级做| 国产精品灌醉下药二区| 性做久久久久久免费观看| 国产一区二区三区电影在线观看| 99久久精品国产观看| 欧美福利视频导航| 国产欧美一区视频| 亚洲国产成人精品视频| 国产夫妻精品视频| 欧美日韩性生活| 久久久精品日韩欧美| 一区二区成人在线视频| 国产馆精品极品| 欧美视频一二三区| 中文天堂在线一区| 奇米四色…亚洲| 91九色最新地址| 久久久久国产一区二区三区四区| 亚洲在线观看免费| 成人晚上爱看视频| 91麻豆精品国产91久久久更新时间| 久久久噜噜噜久噜久久综合| 亚洲mv在线观看| 99国产精品久久久久| 日韩欧美一区电影| 亚洲图片有声小说| kk眼镜猥琐国模调教系列一区二区| 91精品在线免费| 一区二区三区在线不卡| 国产99久久久国产精品免费看| 欧美精品久久久久久久多人混战 | 国产蜜臀97一区二区三区| 日韩成人免费电影| 日本韩国欧美一区| 中文在线一区二区| 国产成人免费av在线| 精品国产不卡一区二区三区| 亚洲国产一区视频| 91麻豆swag| 国产精品国产三级国产aⅴ中文 | 成人一区在线观看| 欧美变态tickle挠乳网站| 亚洲第一福利视频在线| 91美女片黄在线观看91美女| 国产精品入口麻豆原神| 国产成人精品综合在线观看| 精品久久久久99| 麻豆成人久久精品二区三区红| 欧美视频精品在线| 亚洲精品国产一区二区三区四区在线| 不卡大黄网站免费看| 日本一区二区久久| 国产白丝精品91爽爽久久| 国产欧美在线观看一区| proumb性欧美在线观看| 国产精品黄色在线观看| 91免费精品国自产拍在线不卡| 国产精品免费视频网站|