#ifndef F_CPU #define F_CPU 3686400 #endif //Baudrate festlegen #define BAUD_RATE 9600 #define UBRR_BAUD ((F_CPU/(16UL*BAUD_RATE))-1) //Port C #define Source_1 PC0 #define Source_2 PC1 #define Source_3 PC2 #define Source_4 PC3 #define Source_5 PC4 #include #include #include #include //Umwandlung char in int int char_to_int(char character) { int integer; integer = 0; switch (character) { case '0': integer = 0; break; case '1': integer = 1; break; case '2': integer = 2; break; case '3': integer = 3; break; case '4': integer = 4; break; case '5': integer = 5; break; case '6': integer = 6; break; case '7': integer = 7; break; case '8': integer = 8; break; case '9': integer = 9; break; }; return integer; }; void usart_init(void) { // Baudrate einstellen -> "Asynchronous Normal Mode" (S. 147 Datenblatt ATmega16) UBRRH = (uint8_t) (UBRR_BAUD>>8); UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff); // Aktivieren von Empfangs (Rx) - und Sendeeinheit (Tx) UCSRB = (1< Ausgang //"Low" -> Eingang DDRC |= (1 << Source_1) | (1 << Source_2) | (1 << Source_3) | (1 << Source_4)| (1 << Source_5); DDRB |= (1 << PB4)|(1 << PB5); //Initiallisierung des USART's usart_init(); while (1) { // Übergabe der Parameter for (i = 0; i < 5;i++) { Port[i] = usart_receive_char(); Status[i] = usart_receive_char(); for (j = k;j