#include #include #include #define F_CPU 12000000 //CPU-Takt #include #define BAUD 9600 //Bautrate #define UART_BAUD_RATE ((F_CPU/16/BAUD)-1) //Werte für Baudregister berechnen #define BAUD_REAL (F_CPU/(16*(UART_BAUD_RATE+1))) //Reale Baudrate #define BAUD_ERROR ( (BAUD_REAL*1000)/BAUD) //Fehler in Promille //Falls Baudrate falsch berechnet oder ähnliches->Fehler ausgeben #if ((BAUD_ERROR < 990) || (BAUD_ERROR > 1010)) #error Fehler Baudrate größer 1% ! #endif #define T_Port PIND //Taster #define Taster_h PD7 //Spannung hoch #define Taster_r PD6 //Spannung runter #define Taster_b PD5 //bestätigen /************************************************ * Funktionsprototypen *************************************************/ //AVR initialisieren void Init_AVR(void); //*********************************************** //USART initialisieren void USART_Init(void); //*********************************************** //Daten über USART senden void USART_Transmit(unsigned char data); //*********************************************** //Taster abfragen uint8_t Taster_Check(void); //*********************************************** //Taster entprellen inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if (!(*port & (1<>8); UBRR0L = (unsigned char) (UART_BAUD_RATE); //Enable Receiver und Transmitter und Receive-Complete-Interrupt UCSR0B |= (1<