📄 usbcdc.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 + -