GPIB_AVR
|
Interrupt UART library using the built-in UART with transmit and receive circular buffers. More...
Defines | |
#define | UART_BAUD_SELECT(baudRate, xtalCpu) ((xtalCpu)/((baudRate)*16l)-1) |
UART Baudrate Expression. | |
#define | UART_BAUD_SELECT_DOUBLE_SPEED(baudRate, xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000) |
UART Baudrate Expression for ATmega double speed mode. | |
#define | UART_RX_BUFFER_SIZE 32 |
Size of the circular receive buffer, must be power of 2. | |
#define | UART_TX_BUFFER_SIZE 32 |
Size of the circular transmit buffer, must be power of 2. | |
#define | UART_FRAME_ERROR 0x0800 |
#define | UART_OVERRUN_ERROR 0x0400 |
#define | UART_BUFFER_OVERFLOW 0x0200 |
#define | UART_NO_DATA 0x0100 |
#define | uart_puts_P(__s) uart_puts_p(PSTR(__s)) |
Macro to automatically put a string constant into program memory. | |
#define | uart1_puts_P(__s) uart1_puts_p(PSTR(__s)) |
Macro to automatically put a string constant into program memory. | |
Functions | |
void | uart_init (unsigned int baudrate) |
Initialize UART and set baudrate. | |
unsigned int | uart_getc (void) |
Get received byte from ringbuffer. | |
void | uart_putc (unsigned char data) |
Put byte to ringbuffer for transmitting via UART. | |
void | uart_puts (const char *s) |
Put string to ringbuffer for transmitting via UART. | |
void | uart_puts_p (const char *s) |
Put string from program memory to ringbuffer for transmitting via UART. | |
void | uart1_init (unsigned int baudrate) |
Initialize USART1 (only available on selected ATmegas) | |
unsigned int | uart1_getc (void) |
Get received byte of USART1 from ringbuffer. | |
void | uart1_putc (unsigned char data) |
Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) | |
void | uart1_puts (const char *s) |
Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) | |
void | uart1_puts_p (const char *s) |
Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) |
Interrupt UART library using the built-in UART with transmit and receive circular buffers.
#include <uart.h>
This library can be used to transmit and receive data through the built in UART.
An interrupt is generated when the UART has finished transmitting or receiving a byte. The interrupt handling routines use circular buffers for buffering received and transmitted data.
The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define the size of the circular buffers in bytes. Note that these constants must be a power of 2. You may need to adapt this constants to your target and your application by adding CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.
#define uart1_puts_P | ( | __s | ) | uart1_puts_p(PSTR(__s)) |
Macro to automatically put a string constant into program memory.
#define UART_BAUD_SELECT | ( | baudRate, | |
xtalCpu | |||
) | ((xtalCpu)/((baudRate)*16l)-1) |
UART Baudrate Expression.
xtalcpu | system clock in Mhz, e.g. 4000000L for 4Mhz |
baudrate | baudrate in bps, e.g. 1200, 2400, 9600 |
#define UART_BAUD_SELECT_DOUBLE_SPEED | ( | baudRate, | |
xtalCpu | |||
) | (((xtalCpu)/((baudRate)*8l)-1)|0x8000) |
UART Baudrate Expression for ATmega double speed mode.
xtalcpu | system clock in Mhz, e.g. 4000000L for 4Mhz |
baudrate | baudrate in bps, e.g. 1200, 2400, 9600 |
#define UART_BUFFER_OVERFLOW 0x0200 |
Referenced by debugshell(), and input_process().
#define UART_FRAME_ERROR 0x0800 |
Referenced by debugshell(), and input_process().
#define UART_NO_DATA 0x0100 |
Referenced by debugshell(), and input_process().
#define UART_OVERRUN_ERROR 0x0400 |
Referenced by debugshell(), and input_process().
#define uart_puts_P | ( | __s | ) | uart_puts_p(PSTR(__s)) |
Macro to automatically put a string constant into program memory.
Referenced by debugshell(), and input_process().
#define UART_RX_BUFFER_SIZE 32 |
Size of the circular receive buffer, must be power of 2.
#define UART_TX_BUFFER_SIZE 32 |
Size of the circular transmit buffer, must be power of 2.
unsigned int uart1_getc | ( | void | ) |
void uart1_init | ( | unsigned int | baudrate | ) |
Initialize USART1 (only available on selected ATmegas)
void uart1_putc | ( | unsigned char | data | ) |
Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega)
void uart1_puts | ( | const char * | s | ) |
Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega)
void uart1_puts_p | ( | const char * | s | ) |
Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega)
unsigned int uart_getc | ( | void | ) |
Get received byte from ringbuffer.
Returns in the lower byte the received character and in the higher byte the last receive error. UART_NO_DATA is returned when no data is available.
void |
Referenced by debugshell(), and input_process().
void uart_init | ( | unsigned int | baudrate | ) |
Initialize UART and set baudrate.
baudrate | Specify baudrate using macro UART_BAUD_SELECT() |
void uart_putc | ( | unsigned char | data | ) |
Put byte to ringbuffer for transmitting via UART.
data | byte to be transmitted |
Referenced by debugshell(), input_process(), and main().
void uart_puts | ( | const char * | s | ) |
Put string to ringbuffer for transmitting via UART.
The string is buffered by the uart library in a circular buffer and one character at a time is transmitted to the UART using interrupts. Blocks if it can not write the whole string into the circular buffer.
s | string to be transmitted |
Referenced by _gpib_write(), debugshell(), gpib_info(), gpib_receive(), gpib_serial_poll(), main(), and printHelp().
void uart_puts_p | ( | const char * | s | ) |
Put string from program memory to ringbuffer for transmitting via UART.
The string is buffered by the uart library in a circular buffer and one character at a time is transmitted to the UART using interrupts. Blocks if it can not write the whole string into the circular buffer.
s | program memory string to be transmitted |