7 #ifndef ZRTOS_VFS_MODULE_AVR_UART_UART0_H 8 #define ZRTOS_VFS_MODULE_AVR_UART_UART0_H 19 ISR(UART0_RECEIVE_INTERRUPT){
20 #if defined(AVR1_USART0) 21 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS USART0_RXDATAH 22 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__DATA USART0.RXDATAL 24 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS UART0_STATUS 25 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__DATA UART0_DATA 28 #if defined(AT90_UART) 29 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR\ 30 (ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS & (_BV(FE)|_BV(DOR)|_BV(UPE))) 31 #elif defined(ATMEGA_USART) 32 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR\ 33 (ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS & (_BV(FE)|_BV(DOR)|_BV(UPE))) 34 #elif defined(ATMEGA_USART0) 35 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR\ 36 (ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS & (_BV(FE0)|_BV(DOR0)|_BV(UPE0))) 37 #elif defined(ATMEGA_UART) 38 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR\ 39 (ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS & (_BV(FE)|_BV(DOR)|_BV(UPE))) 40 #elif defined(AVR1_USART0) 41 # define ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR\ 42 (ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS & (USART_BUFOVF_bm | USART_FERR_bm | USART_PERR_bm)) 46 zrtos_vfs_module_avr_uart0
49 ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR == 0
55 #undef ZRTOS_VFS_MODULE_AVR_UART_UART0__STATUS 56 #undef ZRTOS_VFS_MODULE_AVR_UART_UART0__DATA 57 #undef ZRTOS_VFS_MODULE_AVR_UART_UART0__ERROR 60 ISR(UART0_TRANSMIT_INTERRUPT,ISR_NOBLOCK){
63 zrtos_vfs_module_avr_uart0
66 #if defined(AVR1_USART0) 72 #if defined(AVR1_USART0) 73 USART0_CTRLA &= ~USART_DREIE_bm;
75 UART0_CONTROL &= ~_BV(UART0_UDRIE);
94 #if defined(AT90_UART) 99 UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
101 #elif defined(ATMEGA_USART) 104 UART0_STATUS = _BV(U2X);
107 UART0_STATUS &= ~_BV(U2X);
109 UBRRH = (
uint8_t) (baudrate>>8);
113 UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
117 UCSRC = _BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0);
119 UCSRC = _BV(UCSZ1)|_BV(UCSZ0);
122 #elif defined(ATMEGA_USART0) 125 UART0_STATUS = _BV(U2X0);
128 UART0_STATUS &= ~_BV(U2X0);
130 UBRR0H = (
uint8_t)(baudrate>>8);
134 UART0_CONTROL = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
138 UCSR0C = _BV(URSEL0)|_BV(UCSZ01)|_BV(UCSZ00);
140 UCSR0C = _BV(UCSZ01)|_BV(UCSZ00);
143 #elif defined(ATMEGA_UART) 146 UART0_STATUS = _BV(U2X);
149 UART0_STATUS &= ~_BV(U2X);
151 UBRRHI = (
uint8_t) (baudrate>>8);
155 UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
157 #elif defined(AVR1_USART0) 159 USART0.BAUD = USART0_BAUD_RATE(baudrate);
161 USART0.CTRLA = USART_RXCIE_bm;
162 USART0.CTRLB = USART_TXEN_bm | USART_RXEN_bm | USART_RXMODE_NORMAL_gc;
170 #if defined(AVR1_USART0) 171 USART0_CTRLA &= ~USART_DREIE_bm;
173 UART0_CONTROL &= ~_BV(UART0_UDRIE);
195 #if defined(AVR1_USART0) 196 USART0_CTRLA |= USART_DREIE_bm;
198 UART0_CONTROL |= _BV(UART0_UDRIE);
#define ZRTOS_CAST(type, value)
zrtos_vfs_module_uart_baudrate_t baudrate
size_t zrtos_vfs_offset_t
#define ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT()
zrtos_error_t zrtos_vfs_module_uart__on_read(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
#define ZRTOS_VFS_MODULE_AVR_UART_UART0__DATA
#define ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT()
#define ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT()
zrtos_error_t zrtos_vfs_module_uart__on_can_write(zrtos_vfs_file_t *thiz)
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(callback)
zrtos_error_t zrtos_vfs_module_avr_uart0__on_umount(zrtos_vfs_dentry_t *thiz)
zrtos_error_t zrtos_vfs_module_avr_uart0__on_write(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
ISR(UART0_RECEIVE_INTERRUPT)
void zrtos_vfs_module_avr_uart__on_receive_interrupt(zrtos_vfs_module_uart_inode_t *thiz, uint8_t data, zrtos_error_t err)
#define ZRTOS_VFS_PLUGIN__2_ON_MOUNT(callback)
zrtos_error_t zrtos_vfs_module_uart__on_can_read(zrtos_vfs_file_t *thiz)
#define ZRTOS_VFS_PLUGIN__4_ON_READ(callback)
#define ZRTOS_VFS_PLUGIN__6_ON_CAN_READ(callback)
#define ZRTOS_VFS_MODULE_AVR_UART__IS_DOUBLE_SPEED(baudrate)
#define ZRTOS_VFS_PLUGIN__5_ON_WRITE(callback)
bool zrtos_error__is_success(zrtos_error_t thiz)
zrtos_error_t zrtos_vfs_module_uart__on_write(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
#define ZRTOS_VFS_PLUGIN__9_ON_IOCTL(callback)
Successful program execution status.
void * zrtos_vfs_dentry__get_inode_data(zrtos_vfs_dentry_t *thiz)
zrtos_error_t zrtos_vfs_module_avr_uart0__on_mount(zrtos_vfs_dentry_t *thiz)
uint16_t zrtos_vfs_module_avr_uart__baud_select(zrtos_vfs_module_uart_baudrate_t baudrate)
#define ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE(callback)
ZRTOS_VFS_PLUGIN__INIT(avr_uart0, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT(zrtos_vfs_module_avr_uart0__on_mount) ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(zrtos_vfs_module_avr_uart0__on_umount) ZRTOS_VFS_PLUGIN__4_ON_READ(zrtos_vfs_module_uart__on_read) ZRTOS_VFS_PLUGIN__5_ON_WRITE(zrtos_vfs_module_avr_uart0__on_write) ZRTOS_VFS_PLUGIN__6_ON_CAN_READ(zrtos_vfs_module_uart__on_can_read) ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE(zrtos_vfs_module_uart__on_can_write) ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT() ZRTOS_VFS_PLUGIN__9_ON_IOCTL(zrtos_vfs_module_uart__on_ioctl))
bool zrtos_vfs_module_avr_uart__on_transmit_interrupt(zrtos_vfs_module_uart_inode_t *thiz, uint8_t *data)
zrtos_error_t zrtos_vfs_module_uart__on_ioctl(zrtos_vfs_file_t *thiz, char *path, int request, va_list args)
zrtos_vfs_module_uart_inode_t * zrtos_vfs_module_avr_uart0