#include <avr / io.h> #include <stdio.h> //Standart Ein/Ausgabe #define TAKT 8000000UL //Controllertakt 8 MHz #define BAUD 9600UL //Baudrate 9600Bd void inituart(void) //USART bzw UART initialisieren { unsigned char x; //Hilfsvariabel #ifdef UBRRL //USART-Schnittstelle UBRRL = (TAKT / (16 * BAUD)) -1; //BAudrate UCSRB |= (1 << TXEN) | (1<< RXEN); UCSRC |= (1 << URSEL) | (1<< UCSZ1) | (1<< UCSZ0); #else //UART-Schnittstelle UBRR = (TAKT / (16 * BAUD)) -1; //BAudrate UCR |= (1 << TXEN) | (1 << RXEN); #endif x = UDR; //Empfänger leeren } int putch (char X) //warten und Zeichen senden { #ifdef UCSRA while ( !(UCSRA & (1 << UDRE))); //warten solange Sender besetzt #endif UDR = 127; ; //Sendet Daten (Zeichen)an Sender return 0; //Marke kein Fehler } int getch (void) //warte und Zeichen abholen { #ifdef UCSRA //USART while (!(UCSRA & (1 << RXC))); //warte solange Empfänger besetzt ist #else USRA //UART while (!(USRA & (1 << RXC))); //warte solange Empfänger besetzt ist #endif return UDR; } int getche (void) { unsigned char x; x = getch(); putch (x); return x; }