Ran clang-format
This commit is contained in:
parent
470eb06345
commit
c03196493a
96
uart.cpp
96
uart.cpp
@ -36,11 +36,10 @@ LICENSE:
|
|||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
#include <avr/io.h>
|
|
||||||
#include <avr/interrupt.h>
|
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "uart.h"
|
#include "uart.h"
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* constants and macros
|
* constants and macros
|
||||||
@ -57,10 +56,8 @@ LICENSE:
|
|||||||
#error TX buffer size is not a power of 2
|
#error TX buffer size is not a power of 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(__AVR_AT90S2313__) || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || \
|
#if defined(__AVR_AT90S2313__) || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || \
|
||||||
defined(__AVR_AT90S4434__) || defined(__AVR_AT90S8535__) || \
|
defined(__AVR_AT90S4434__) || defined(__AVR_AT90S8535__) || defined(__AVR_ATmega103__)
|
||||||
defined(__AVR_ATmega103__)
|
|
||||||
/* old AVR classic or ATmega103 with one UART */
|
/* old AVR classic or ATmega103 with one UART */
|
||||||
#define UART0_RECEIVE_INTERRUPT UART_RX_vect
|
#define UART0_RECEIVE_INTERRUPT UART_RX_vect
|
||||||
#define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
|
#define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
|
||||||
@ -103,9 +100,8 @@ LICENSE:
|
|||||||
#define UART0_BIT_TXEN TXEN
|
#define UART0_BIT_TXEN TXEN
|
||||||
#define UART0_BIT_UCSZ0 UCSZ0
|
#define UART0_BIT_UCSZ0 UCSZ0
|
||||||
#define UART0_BIT_UCSZ1 UCSZ1
|
#define UART0_BIT_UCSZ1 UCSZ1
|
||||||
#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega8A__) || \
|
#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega8A__) || defined(__AVR_ATmega16__) || \
|
||||||
defined(__AVR_ATmega16__) || defined(__AVR_ATmega16A__) || \
|
defined(__AVR_ATmega16A__) || defined(__AVR_ATmega32__) || defined(__AVR_ATmega32A__) || \
|
||||||
defined(__AVR_ATmega32__) || defined(__AVR_ATmega32A__) || \
|
|
||||||
defined(__AVR_ATmega323__)
|
defined(__AVR_ATmega323__)
|
||||||
/* ATmega with one USART */
|
/* ATmega with one USART */
|
||||||
#define UART0_RECEIVE_INTERRUPT USART_RXC_vect
|
#define UART0_RECEIVE_INTERRUPT USART_RXC_vect
|
||||||
@ -210,11 +206,13 @@ LICENSE:
|
|||||||
#define UART0_BIT_TXEN TXEN
|
#define UART0_BIT_TXEN TXEN
|
||||||
#define UART0_BIT_UCSZ0 UCSZ0
|
#define UART0_BIT_UCSZ0 UCSZ0
|
||||||
#define UART0_BIT_UCSZ1 UCSZ1
|
#define UART0_BIT_UCSZ1 UCSZ1
|
||||||
#elif defined(__AVR_ATmega48__) || defined(__AVR_ATmega48A__) || defined(__AVR_ATmega48P__) || defined(__AVR_ATmega48PA__) || defined(__AVR_ATmega48PB__) || \
|
#elif defined(__AVR_ATmega48__) || defined(__AVR_ATmega48A__) || defined(__AVR_ATmega48P__) || \
|
||||||
defined(__AVR_ATmega88__) || defined(__AVR_ATmega88A__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega88PA__) || defined(__AVR_ATmega88PB__) || \
|
defined(__AVR_ATmega48PA__) || defined(__AVR_ATmega48PB__) || defined(__AVR_ATmega88__) || \
|
||||||
defined(__AVR_ATmega168__) || defined(__AVR_ATmega168A__)|| defined(__AVR_ATmega168P__)|| defined(__AVR_ATmega168PA__) || defined(__AVR_ATmega168PB__) || \
|
defined(__AVR_ATmega88A__) || defined(__AVR_ATmega88P__) || defined(__AVR_ATmega88PA__) || \
|
||||||
defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__) || \
|
defined(__AVR_ATmega88PB__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega168A__) || \
|
||||||
defined(__AVR_ATmega3250__) || defined(__AVR_ATmega3290__) ||defined(__AVR_ATmega6450__) || defined(__AVR_ATmega6490__)
|
defined(__AVR_ATmega168P__) || defined(__AVR_ATmega168PA__) || defined(__AVR_ATmega168PB__) || \
|
||||||
|
defined(__AVR_ATmega328__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega3250__) || \
|
||||||
|
defined(__AVR_ATmega3290__) || defined(__AVR_ATmega6450__) || defined(__AVR_ATmega6490__)
|
||||||
/* ATmega with one USART */
|
/* ATmega with one USART */
|
||||||
#define UART0_RECEIVE_INTERRUPT USART_RX_vect
|
#define UART0_RECEIVE_INTERRUPT USART_RX_vect
|
||||||
#define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
|
#define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
|
||||||
@ -248,15 +246,16 @@ LICENSE:
|
|||||||
#define UART0_BIT_TXEN TXEN
|
#define UART0_BIT_TXEN TXEN
|
||||||
#define UART0_BIT_UCSZ0 UCSZ0
|
#define UART0_BIT_UCSZ0 UCSZ0
|
||||||
#define UART0_BIT_UCSZ1 UCSZ1
|
#define UART0_BIT_UCSZ1 UCSZ1
|
||||||
#elif defined(__AVR_ATmega329__) || defined(__AVR_ATmega649__) || defined(__AVR_ATmega3290__) || defined(__AVR_ATmega6490__) ||\
|
#elif defined(__AVR_ATmega329__) || defined(__AVR_ATmega649__) || defined(__AVR_ATmega3290__) || \
|
||||||
defined(__AVR_ATmega169A__) || defined(__AVR_ATmega169PA__) || \
|
defined(__AVR_ATmega6490__) || defined(__AVR_ATmega169A__) || defined(__AVR_ATmega169PA__) || \
|
||||||
defined(__AVR_ATmega329A__) || defined(__AVR_ATmega329PA__) || defined(__AVR_ATmega3290A__) || defined(__AVR_ATmega3290PA__) || \
|
defined(__AVR_ATmega329A__) || defined(__AVR_ATmega329PA__) || defined(__AVR_ATmega3290A__) || \
|
||||||
defined(__AVR_ATmega649A__) || defined(__AVR_ATmega649P__) || defined(__AVR_ATmega6490A__) || defined(__AVR_ATmega6490P__) || \
|
defined(__AVR_ATmega3290PA__) || defined(__AVR_ATmega649A__) || defined(__AVR_ATmega649P__) || \
|
||||||
defined(__AVR_ATmega165__) || defined(__AVR_ATmega325__) || defined(__AVR_ATmega645__) || defined(__AVR_ATmega3250__) || defined(__AVR_ATmega6450__) || \
|
defined(__AVR_ATmega6490A__) || defined(__AVR_ATmega6490P__) || defined(__AVR_ATmega165__) || \
|
||||||
defined(__AVR_ATmega165A__) || defined(__AVR_ATmega165PA__) || \
|
defined(__AVR_ATmega325__) || defined(__AVR_ATmega645__) || defined(__AVR_ATmega3250__) || \
|
||||||
defined(__AVR_ATmega325A__) || defined(__AVR_ATmega325PA__) || defined(__AVR_ATmega3250A__) || defined(__AVR_ATmega3250PA__) ||\
|
defined(__AVR_ATmega6450__) || defined(__AVR_ATmega165A__) || defined(__AVR_ATmega165PA__) || \
|
||||||
defined(__AVR_ATmega645A__) || defined(__AVR_ATmega645PA__) || defined(__AVR_ATmega6450A__) || defined(__AVR_ATmega6450PA__) || \
|
defined(__AVR_ATmega325A__) || defined(__AVR_ATmega325PA__) || defined(__AVR_ATmega3250A__) || \
|
||||||
defined(__AVR_ATmega644__)
|
defined(__AVR_ATmega3250PA__) || defined(__AVR_ATmega645A__) || defined(__AVR_ATmega645PA__) || \
|
||||||
|
defined(__AVR_ATmega6450A__) || defined(__AVR_ATmega6450PA__) || defined(__AVR_ATmega644__)
|
||||||
/* ATmega with one USART */
|
/* ATmega with one USART */
|
||||||
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
@ -274,11 +273,12 @@ LICENSE:
|
|||||||
#define UART0_BIT_UCSZ0 UCSZ00
|
#define UART0_BIT_UCSZ0 UCSZ00
|
||||||
#define UART0_BIT_UCSZ1 UCSZ01
|
#define UART0_BIT_UCSZ1 UCSZ01
|
||||||
#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega128A__) || \
|
#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega128A__) || \
|
||||||
defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || \
|
defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || \
|
||||||
defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__) || \
|
defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined(__AVR_ATmega164P__) || \
|
||||||
defined(__AVR_ATmega164A__) || defined(__AVR_ATmega164PA__) || defined(__AVR_ATmega324A__) || defined(__AVR_ATmega324PA__) || \
|
defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega164A__) || \
|
||||||
defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) ||\
|
defined(__AVR_ATmega164PA__) || defined(__AVR_ATmega324A__) || defined(__AVR_ATmega324PA__) || \
|
||||||
defined(__AVR_ATtiny1634__)
|
defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega1284__) || \
|
||||||
|
defined(__AVR_ATmega1284P__) || defined(__AVR_ATtiny1634__)
|
||||||
/* ATmega with two USART */
|
/* ATmega with two USART */
|
||||||
#define ATMEGA_USART1
|
#define ATMEGA_USART1
|
||||||
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
@ -312,9 +312,9 @@ LICENSE:
|
|||||||
#define UART1_BIT_UCSZ0 UCSZ10
|
#define UART1_BIT_UCSZ0 UCSZ10
|
||||||
#define UART1_BIT_UCSZ1 UCSZ11
|
#define UART1_BIT_UCSZ1 UCSZ11
|
||||||
#elif defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || \
|
#elif defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || \
|
||||||
defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || \
|
defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB82__) || \
|
||||||
defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \
|
defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) || \
|
||||||
defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__)
|
defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__)
|
||||||
#define UART0_RECEIVE_INTERRUPT USART1_RX_vect
|
#define UART0_RECEIVE_INTERRUPT USART1_RX_vect
|
||||||
#define UART0_TRANSMIT_INTERRUPT USART1_UDRE_vect
|
#define UART0_TRANSMIT_INTERRUPT USART1_UDRE_vect
|
||||||
#define UART0_STATUS UCSR1A
|
#define UART0_STATUS UCSR1A
|
||||||
@ -334,8 +334,6 @@ LICENSE:
|
|||||||
#error "no UART definition for MCU available"
|
#error "no UART definition for MCU available"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* module global variables
|
* module global variables
|
||||||
*/
|
*/
|
||||||
@ -357,8 +355,6 @@ static volatile unsigned char UART1_RxTail;
|
|||||||
static volatile unsigned char UART1_LastRxError;
|
static volatile unsigned char UART1_LastRxError;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ISR(UART0_RECEIVE_INTERRUPT)
|
ISR(UART0_RECEIVE_INTERRUPT)
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: UART Receive Complete interrupt
|
Function: UART Receive Complete interrupt
|
||||||
@ -370,7 +366,6 @@ Purpose: called when the UART has received a character
|
|||||||
unsigned char usr;
|
unsigned char usr;
|
||||||
unsigned char lastRxError;
|
unsigned char lastRxError;
|
||||||
|
|
||||||
|
|
||||||
/* read UART status register and UART data register */
|
/* read UART status register and UART data register */
|
||||||
usr = UART0_STATUS;
|
usr = UART0_STATUS;
|
||||||
data = UART0_DATA;
|
data = UART0_DATA;
|
||||||
@ -401,7 +396,6 @@ Purpose: called when the UART has received a character
|
|||||||
UART_LastRxError |= lastRxError;
|
UART_LastRxError |= lastRxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ISR(UART0_TRANSMIT_INTERRUPT)
|
ISR(UART0_TRANSMIT_INTERRUPT)
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: UART Data Register Empty interrupt
|
Function: UART Data Register Empty interrupt
|
||||||
@ -410,7 +404,6 @@ Purpose: called when the UART is ready to transmit the next byte
|
|||||||
{
|
{
|
||||||
unsigned char tmptail;
|
unsigned char tmptail;
|
||||||
|
|
||||||
|
|
||||||
if (UART_TxHead != UART_TxTail) {
|
if (UART_TxHead != UART_TxTail) {
|
||||||
/* calculate and store new buffer index */
|
/* calculate and store new buffer index */
|
||||||
tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
|
tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
|
||||||
@ -423,7 +416,6 @@ Purpose: called when the UART is ready to transmit the next byte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart_init()
|
Function: uart_init()
|
||||||
Purpose: initialize UART and set baudrate
|
Purpose: initialize UART and set baudrate
|
||||||
@ -455,8 +447,7 @@ void uart_init(unsigned int baudrate)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set baud rate */
|
/* Set baud rate */
|
||||||
if ( baudrate & 0x8000 )
|
if (baudrate & 0x8000) {
|
||||||
{
|
|
||||||
#if UART0_BIT_U2X
|
#if UART0_BIT_U2X
|
||||||
UART0_STATUS = (1 << UART0_BIT_U2X); // Enable 2x speed
|
UART0_STATUS = (1 << UART0_BIT_U2X); // Enable 2x speed
|
||||||
#endif
|
#endif
|
||||||
@ -480,7 +471,6 @@ void uart_init(unsigned int baudrate)
|
|||||||
|
|
||||||
} /* uart_init */
|
} /* uart_init */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart_getc()
|
Function: uart_getc()
|
||||||
Purpose: return byte from ringbuffer
|
Purpose: return byte from ringbuffer
|
||||||
@ -493,7 +483,6 @@ unsigned int uart_getc(void)
|
|||||||
unsigned char data;
|
unsigned char data;
|
||||||
unsigned char lastRxError;
|
unsigned char lastRxError;
|
||||||
|
|
||||||
|
|
||||||
if (UART_RxHead == UART_RxTail) {
|
if (UART_RxHead == UART_RxTail) {
|
||||||
return UART_NO_DATA; /* no data available */
|
return UART_NO_DATA; /* no data available */
|
||||||
}
|
}
|
||||||
@ -513,7 +502,6 @@ unsigned int uart_getc(void)
|
|||||||
|
|
||||||
} /* uart_getc */
|
} /* uart_getc */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart_putc()
|
Function: uart_putc()
|
||||||
Purpose: write byte to ringbuffer for transmitting via UART
|
Purpose: write byte to ringbuffer for transmitting via UART
|
||||||
@ -524,7 +512,6 @@ void uart_putc(unsigned char data)
|
|||||||
{
|
{
|
||||||
unsigned char tmphead;
|
unsigned char tmphead;
|
||||||
|
|
||||||
|
|
||||||
tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
|
tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
|
||||||
|
|
||||||
while (tmphead == UART_TxTail) {
|
while (tmphead == UART_TxTail) {
|
||||||
@ -539,7 +526,6 @@ void uart_putc(unsigned char data)
|
|||||||
|
|
||||||
} /* uart_putc */
|
} /* uart_putc */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart_puts()
|
Function: uart_puts()
|
||||||
Purpose: transmit string to UART
|
Purpose: transmit string to UART
|
||||||
@ -553,7 +539,6 @@ void uart_puts(const char *s )
|
|||||||
|
|
||||||
} /* uart_puts */
|
} /* uart_puts */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart_puts_p()
|
Function: uart_puts_p()
|
||||||
Purpose: transmit string from program memory to UART
|
Purpose: transmit string from program memory to UART
|
||||||
@ -569,7 +554,6 @@ void uart_puts_p(const char *progmem_s )
|
|||||||
|
|
||||||
} /* uart_puts_p */
|
} /* uart_puts_p */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* these functions are only for ATmegas with two USART
|
* these functions are only for ATmegas with two USART
|
||||||
*/
|
*/
|
||||||
@ -586,7 +570,6 @@ Purpose: called when the UART1 has received a character
|
|||||||
unsigned char usr;
|
unsigned char usr;
|
||||||
unsigned char lastRxError;
|
unsigned char lastRxError;
|
||||||
|
|
||||||
|
|
||||||
/* read UART status register and UART data register */
|
/* read UART status register and UART data register */
|
||||||
usr = UART1_STATUS;
|
usr = UART1_STATUS;
|
||||||
data = UART1_DATA;
|
data = UART1_DATA;
|
||||||
@ -609,7 +592,6 @@ Purpose: called when the UART1 has received a character
|
|||||||
UART1_LastRxError |= lastRxError;
|
UART1_LastRxError |= lastRxError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ISR(UART1_TRANSMIT_INTERRUPT)
|
ISR(UART1_TRANSMIT_INTERRUPT)
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: UART1 Data Register Empty interrupt
|
Function: UART1 Data Register Empty interrupt
|
||||||
@ -618,7 +600,6 @@ Purpose: called when the UART1 is ready to transmit the next byte
|
|||||||
{
|
{
|
||||||
unsigned char tmptail;
|
unsigned char tmptail;
|
||||||
|
|
||||||
|
|
||||||
if (UART1_TxHead != UART1_TxTail) {
|
if (UART1_TxHead != UART1_TxTail) {
|
||||||
/* calculate and store new buffer index */
|
/* calculate and store new buffer index */
|
||||||
tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
|
tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
|
||||||
@ -631,7 +612,6 @@ Purpose: called when the UART1 is ready to transmit the next byte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart1_init()
|
Function: uart1_init()
|
||||||
Purpose: initialize UART1 and set baudrate
|
Purpose: initialize UART1 and set baudrate
|
||||||
@ -663,8 +643,7 @@ void uart1_init(unsigned int baudrate)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set baud rate */
|
/* Set baud rate */
|
||||||
if ( baudrate & 0x8000 )
|
if (baudrate & 0x8000) {
|
||||||
{
|
|
||||||
#if UART1_BIT_U2X
|
#if UART1_BIT_U2X
|
||||||
UART1_STATUS = (1 << UART1_BIT_U2X); // Enable 2x speed
|
UART1_STATUS = (1 << UART1_BIT_U2X); // Enable 2x speed
|
||||||
#endif
|
#endif
|
||||||
@ -684,7 +663,6 @@ void uart1_init(unsigned int baudrate)
|
|||||||
|
|
||||||
} /* uart_init */
|
} /* uart_init */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart1_getc()
|
Function: uart1_getc()
|
||||||
Purpose: return byte from ringbuffer
|
Purpose: return byte from ringbuffer
|
||||||
@ -697,7 +675,6 @@ unsigned int uart1_getc(void)
|
|||||||
unsigned int data;
|
unsigned int data;
|
||||||
unsigned char lastRxError;
|
unsigned char lastRxError;
|
||||||
|
|
||||||
|
|
||||||
if (UART1_RxHead == UART1_RxTail) {
|
if (UART1_RxHead == UART1_RxTail) {
|
||||||
return UART_NO_DATA; /* no data available */
|
return UART_NO_DATA; /* no data available */
|
||||||
}
|
}
|
||||||
@ -717,7 +694,6 @@ unsigned int uart1_getc(void)
|
|||||||
|
|
||||||
} /* uart1_getc */
|
} /* uart1_getc */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart1_putc()
|
Function: uart1_putc()
|
||||||
Purpose: write byte to ringbuffer for transmitting via UART
|
Purpose: write byte to ringbuffer for transmitting via UART
|
||||||
@ -728,7 +704,6 @@ void uart1_putc(unsigned char data)
|
|||||||
{
|
{
|
||||||
unsigned char tmphead;
|
unsigned char tmphead;
|
||||||
|
|
||||||
|
|
||||||
tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
|
tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
|
||||||
|
|
||||||
while (tmphead == UART1_TxTail) {
|
while (tmphead == UART1_TxTail) {
|
||||||
@ -743,7 +718,6 @@ void uart1_putc(unsigned char data)
|
|||||||
|
|
||||||
} /* uart1_putc */
|
} /* uart1_putc */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart1_puts()
|
Function: uart1_puts()
|
||||||
Purpose: transmit string to UART1
|
Purpose: transmit string to UART1
|
||||||
@ -757,7 +731,6 @@ void uart1_puts(const char *s )
|
|||||||
|
|
||||||
} /* uart1_puts */
|
} /* uart1_puts */
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Function: uart1_puts_p()
|
Function: uart1_puts_p()
|
||||||
Purpose: transmit string from program memory to UART1
|
Purpose: transmit string from program memory to UART1
|
||||||
@ -773,5 +746,4 @@ void uart1_puts_p(const char *progmem_s )
|
|||||||
|
|
||||||
} /* uart1_puts_p */
|
} /* uart1_puts_p */
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
19
uart.h
19
uart.h
@ -46,22 +46,18 @@ LICENSE:
|
|||||||
* @copyright (C) 2015 Peter Fleury, GNU General Public License Version 3
|
* @copyright (C) 2015 Peter Fleury, GNU General Public License Version 3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 405
|
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 405
|
||||||
#error "This library requires AVR-GCC 4.5 or later, update to newer AVR-GCC compiler !"
|
#error "This library requires AVR-GCC 4.5 or later, update to newer AVR-GCC compiler !"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**@{*/
|
/**@{*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** constants and macros
|
** constants and macros
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** @brief UART Baudrate Expression
|
/** @brief UART Baudrate Expression
|
||||||
* @param xtalCpu system clock in Mhz, e.g. 4000000UL for 4Mhz
|
* @param xtalCpu system clock in Mhz, e.g. 4000000UL for 4Mhz
|
||||||
* @param baudRate baudrate in bps, e.g. 1200, 2400, 9600
|
* @param baudRate baudrate in bps, e.g. 1200, 2400, 9600
|
||||||
@ -72,7 +68,8 @@ LICENSE:
|
|||||||
* @param xtalCpu system clock in Mhz, e.g. 4000000UL for 4Mhz
|
* @param xtalCpu system clock in Mhz, e.g. 4000000UL for 4Mhz
|
||||||
* @param baudRate baudrate in bps, e.g. 1200, 2400, 9600
|
* @param baudRate baudrate in bps, e.g. 1200, 2400, 9600
|
||||||
*/
|
*/
|
||||||
#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) ( ((((xtalCpu) + 4UL * (baudRate)) / (8UL * (baudRate)) -1UL)) | 0x8000)
|
#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate, xtalCpu) \
|
||||||
|
(((((xtalCpu) + 4UL * (baudRate)) / (8UL * (baudRate)) - 1UL)) | 0x8000)
|
||||||
|
|
||||||
/** @brief Size of the circular receive buffer, must be power of 2
|
/** @brief Size of the circular receive buffer, must be power of 2
|
||||||
*
|
*
|
||||||
@ -106,7 +103,6 @@ LICENSE:
|
|||||||
#define UART_BUFFER_OVERFLOW 0x0200 /**< @brief receive ringbuffer overflow */
|
#define UART_BUFFER_OVERFLOW 0x0200 /**< @brief receive ringbuffer overflow */
|
||||||
#define UART_NO_DATA 0x0100 /**< @brief no receive data available */
|
#define UART_NO_DATA 0x0100 /**< @brief no receive data available */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** function prototypes
|
** function prototypes
|
||||||
*/
|
*/
|
||||||
@ -118,7 +114,6 @@ LICENSE:
|
|||||||
*/
|
*/
|
||||||
extern void uart_init(unsigned int baudrate);
|
extern void uart_init(unsigned int baudrate);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get received byte from ringbuffer
|
* @brief Get received byte from ringbuffer
|
||||||
*
|
*
|
||||||
@ -145,7 +140,6 @@ extern void uart_init(unsigned int baudrate);
|
|||||||
*/
|
*/
|
||||||
extern unsigned int uart_getc(void);
|
extern unsigned int uart_getc(void);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Put byte to ringbuffer for transmitting via UART
|
* @brief Put byte to ringbuffer for transmitting via UART
|
||||||
* @param data byte to be transmitted
|
* @param data byte to be transmitted
|
||||||
@ -153,7 +147,6 @@ extern unsigned int uart_getc(void);
|
|||||||
*/
|
*/
|
||||||
extern void uart_putc(unsigned char data);
|
extern void uart_putc(unsigned char data);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Put string to ringbuffer for transmitting via UART
|
* @brief Put string to ringbuffer for transmitting via UART
|
||||||
*
|
*
|
||||||
@ -166,7 +159,6 @@ extern void uart_putc(unsigned char data);
|
|||||||
*/
|
*/
|
||||||
extern void uart_puts(const char *s);
|
extern void uart_puts(const char *s);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Put string from program memory to ringbuffer for transmitting via UART.
|
* @brief Put string from program memory to ringbuffer for transmitting via UART.
|
||||||
*
|
*
|
||||||
@ -185,8 +177,6 @@ extern void uart_puts_p(const char *s );
|
|||||||
*/
|
*/
|
||||||
#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
|
#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
|
/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
|
||||||
extern void uart1_init(unsigned int baudrate);
|
extern void uart1_init(unsigned int baudrate);
|
||||||
/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
|
/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
|
||||||
@ -195,13 +185,12 @@ extern unsigned int uart1_getc(void);
|
|||||||
extern void uart1_putc(unsigned char data);
|
extern void uart1_putc(unsigned char data);
|
||||||
/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
|
/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
|
||||||
extern void uart1_puts(const char *s);
|
extern void uart1_puts(const char *s);
|
||||||
/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
|
/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega)
|
||||||
|
* @see uart_puts_p */
|
||||||
extern void uart1_puts_p(const char *s);
|
extern void uart1_puts_p(const char *s);
|
||||||
/** @brief Macro to automatically put a string constant into program memory */
|
/** @brief Macro to automatically put a string constant into program memory */
|
||||||
#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
|
#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
|
|
||||||
#endif // UART_H
|
#endif // UART_H
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user