#ifndef F_CPU #warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 4000000" #define F_CPU 4000000UL // Systemtakt in Hz - Definition als unsigned long beachten >> Ohne ergeben Fehler in der Berechnung #endif #define BAUD 9600UL // Baudrate // Berechnungen #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler. #if ((BAUD_ERROR<990) || (BAUD_ERROR>1010)) #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! #endif #include #include #include int main(void) { //PORT A als Ausgang (AktivHigh) DDRA = 0xff; //EMPFANG EINSCHALTEN void Usart_EnableRX(void) { UCSRB |= ( 1 << RXEN ); } /* Zeichen empfangen */ uint8_t uart_getc(void) { while (!(UCSRA & (1<