⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbcdc.h

📁 采用atmel公司的mega8芯片设计的USB cdc类
💻 H
字号:
/* Name: usbcdc.h
 * Project: AVR USB driver for CDC interface on Low-Speed USB
 * 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.
 *
 * 2006-07-08   removed zero-sized receive block
 * 2006-07-08   adapted to higher baud rate by T.Kitazawa
 * 2007-02-07   by Koji Suzuki
 *
 */

#ifndef uchar
#define uchar   unsigned char
#endif

#ifndef ulong
#define ulong   unsigned long
#endif

/* Define this to 1 if MCU has USART(s). If defined 0, software UART routines are
 * selected. Software UART is supported on ATtiny45 and 85.
 * If not defined: Guess from AVR type.
 */

#ifndef UART_CFG_HAVE_USART
#define UART_CFG_HAVE_USART 1
#endif

#ifndef UART_DEFAULT_BPS
#define UART_DEFAULT_BPS     19200
#endif

#ifndef RX_SIZE
#define	RX_SIZE		32       /* UART receive buffer size (must be 2^n ) <=256 */
#endif
#ifndef TX_SIZE
#define	TX_SIZE		64       /* UART transmit buffer size (must be 2^n, 16<= ~ <=256 ) */
#endif


#define	RX_MASK		(RX_SIZE-1)
#define	TX_MASK		(TX_SIZE-1)

extern volatile uchar    urptr, uwptr, irptr, iwptr;
extern uchar    rx_buf[RX_SIZE], tx_buf[TX_SIZE];

static inline int8_t usbcdc_can_putc(int8_t size) {
	return ((urptr - iwptr - 1)  & RX_MASK) >= size;
	//return RX_SIZE - ((iwptr - urptr)  & RX_MASK) >= size;
}

static inline int8_t usbcdc_can_getc(int8_t size) {
	return ((uwptr - irptr)  & TX_MASK) >= size;
}

extern void usbcdc_init();
extern void usbcdc_poll();
extern char usbcdc_getc(void);
extern void usbcdc_putc(char data);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -