/**************************************************************************************
*	File:			main.c											*
*	Titel:			ATmega128 DeviceDriver for the UART						*
*	Autor:		Jan Helber, Florian Steinle, Lars Mildner						*
*	Datum:		17.10.2006											*
*	used Software:	Win-AVR-GCC und AVR Studio 4							*
*																*
*	Description:													*
*		Testprogram for the UART DeviceDriver.h								*
*																*
**************************************************************************************/

#include <stdio.h>													// standard I/O .h-file
#include <stdlib.h>
#include "DeviceDriver.h"											// AVR DeviceDriver

int main(void) {
	unsigned char text[40];
	unsigned char size;
	unsigned char temp;
	unsigned char *t;

	io_init();														// alle Ports auf Eingang
	uart0_init(2400, 8, 1, DISABLED, 1000000);						// 2400 Baud, 8 Datenbits, 1 Stopbit, keine Parität, 1 MHz Taktung
	
	uart0_send("Hallo!", 6);										// sende String "Hallo!" über UART
	while (uart0_trans_complete() == 0) asm volatile ("nop");		// warten auf leeren Puffer
	uart0_send("\r\n", 2);											// sende einen Zeilenumbruch

	uart0_send_wait("Eingabe (mit RETURN abschliessen):", 34);		// warten auf leeren Puffer und senden
	
	while(1) {
		uart0_waitack();											// warte auf RETURN
		size = uart0_get_chararray(text);							// lese String
		uart0_send(text, size);										// sende gelesenen String

		size = uart0_get_chararray_command(text);					// warte auf RETURN, lese String
		uart0_send(text, size);										// sende gelesenen String

		uart0_waitack();											// warte auf RETURN
		temp = uart0_get_char();									// lese letztes eingegebenes Zeichen
		t = &temp;
		uart0_send(t, 1);											// gebe Zeichen aus
	}
	
	return 0;
}

