You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.5 KiB

/*
*
@file serial.h
@brief Header file for ATmega64 UART. (AVR-GCC Compiler)
*
*/
#ifndef _SERIAL_H_
#define _SERIAL_H_
#define MAX_SIO_COUNT 32
#define UART_BAUD_RATE(X) ((X==0) ? 2400 : \
(X==1) ? 4800 : \
(X==2) ? 9600 : \
(X==3) ? 14400 : \
(X==4) ? 19200 : \
(X==5) ? 28800 : \
(X==6) ? 38400 : \
(X==7) ? 57600 : \
(X==8) ? 76800 : \
(X==9) ? 115200 : \
(X==10) ? 250000 : \
(X==11) ? 500000 : \
1000000)
#define UART_BAUD_SELECT(X) (u_int)((float)CLK_CPU/(float)(UART_BAUD_RATE(X)*16) -0.5f)
#define XON_CHAR 0x11
#define XOFF_CHAR 0x13
/*
********************************************************************************
Function Prototype Definition Part
********************************************************************************
*/
extern void uart_init(u_char uart, u_char baud_index); /* Initialize the UART of ATmega64 */
extern void uart_databit(u_char uart, u_char dbit);
extern void uart_stopbit(u_char uart, u_char sbit);
extern void uart_paritybit(u_char uart, u_char pbit);
extern void uart_flowctrl(u_char uart, u_char flow);
extern u_int uart_keyhit(u_char uart); /* Check if there is Rx */
extern void uart_puts(u_char uart, char * str); /* Send a string to UART */
extern int uart_gets(u_char uart, char * str,char bpasswordtype, int max_len); /* Get a string from UART */
extern void uart_flush_rx(u_char uart); /* Flush RX Buffer */
#endif /* _SERIAL_H_ */