* Code adapted from Atmel AVR ApplICation Note AVR306
* PolLED mode driver for UART, this is the similar to the
* library default putchar() and getchar() in ICCAVR
*/
#include <io8515.h>
#include <macros.h>
#include "uart.h"
/* initialize UART */
void InitUART( unsigned char baudrate )
{
UBRR = baudrate; /* set the baud rate */
UCR = BIT(RXEN) | BIT(TXEN); /* enable UART receiver and transmitter */
}
/* Read and write functions */
unsigned char ReceiveByte( void )
{
while ( !(USR & (1<<RXC)) ) /* wait for incomming data */
; /* return the data */
return UDR;
}
void TransmitByte( unsigned char data )
{
while ( !(USR & (1<<UDRE)) )
; /* wait for empty transmit buffer */
UDR = data; /* start transmittion */
}
#ifdef TEST
/* main - a simple test program*/
void main( void )
{
InitUART( 11 ); /* set the baudrate to 19,200 bps using a
3.6864MHz Crystal */
while ( 1 ) /* forever */
{
TransmitByte( ReceiveByte() ); /* echo the received character */
}
}
#endif
本文关键字:程序 AVR单片机,单片机-工控设备 - AVR单片机