7 #ifndef ZRTOS_VFS_MODULE_AVR_UART_UART3_H 8 #define ZRTOS_VFS_MODULE_AVR_UART_UART3_H 18 ISR(UART3_RECEIVE_INTERRUPT){
20 zrtos_vfs_module_avr_uart3
23 (UART3_STATUS & (_BV(FE3)|_BV(DOR3)|_BV(UPE3))) == 0
30 ISR(UART3_TRANSMIT_INTERRUPT,ISR_NOBLOCK){
33 zrtos_vfs_module_avr_uart3
38 UART3_CONTROL &= ~_BV(UART3_UDRIE);
57 UART3_STATUS = _BV(U2X3);
63 UBRR3H = (
uint8_t) (baudrate>>8);
67 UART3_CONTROL = _BV(RXCIE3)|_BV(RXEN3)|_BV(TXEN3);
72 UCSR3C = _BV(URSEL3)|_BV(UCSZ31)|_BV(UCSZ30);
74 UCSR3C = _BV(UCSZ31)|_BV(UCSZ30);
81 UART3_CONTROL &= ~_BV(UART3_UDRIE);
102 UART3_CONTROL |= _BV(UART3_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)
zrtos_error_t zrtos_vfs_module_avr_uart3__on_umount(zrtos_vfs_dentry_t *thiz)
#define ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT()
zrtos_error_t zrtos_vfs_module_avr_uart3__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__1_ON_CLOSE_DEFAULT()
zrtos_error_t zrtos_vfs_module_avr_uart3__on_mount(zrtos_vfs_dentry_t *thiz)
zrtos_error_t zrtos_vfs_module_uart__on_can_write(zrtos_vfs_file_t *thiz)
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(callback)
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)
zrtos_vfs_module_uart_inode_t * zrtos_vfs_module_avr_uart3
#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)
ISR(UART3_RECEIVE_INTERRUPT)
uint16_t zrtos_vfs_module_avr_uart__baud_select(zrtos_vfs_module_uart_baudrate_t baudrate)
ZRTOS_VFS_PLUGIN__INIT(avr_uart3, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT(zrtos_vfs_module_avr_uart3__on_mount) ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(zrtos_vfs_module_avr_uart3__on_umount) ZRTOS_VFS_PLUGIN__4_ON_READ(zrtos_vfs_module_uart__on_read) ZRTOS_VFS_PLUGIN__5_ON_WRITE(zrtos_vfs_module_avr_uart3__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))
#define ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE(callback)
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)