/*
 * uart.c
 *
 *  Created on: 06-04-2013
 *      Author: Mirosław Kardaś
 */
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <stdlib.h>

#include "uart.h"



void uart_init( uint16_t baud ) {

	UBRRH = (uint8_t)(baud>>8);
	UBRRL = (uint8_t)baud;

	UCSRB = (1<<TXEN);
}


void uart_putc( char c ) {
	while ( !( UCSRA & (1<<UDRE)) );
	UDR = c;
}

void uart_puts( char * str ) {

	while( *str ) uart_putc( *str++ );

}

void uart_puts_P( const char * str ) {

	char c;
	while( (c = pgm_read_byte(str++)) ) uart_putc( c );

}

void uart_putint( uint32_t value )	// wysyła na port szeregowy tekst
{
	char string[17];			// bufor na wynik funkcji itoa
	ltoa(value, string, 10);		// konwersja value na ASCII
	uart_puts(string);			// wyślij string na port szeregowy
}
