Das ist c-mässig ein Stiefel, auch wenn es scheinbar funktioniert;
if(zeichen=='0')
PORTB = (0<<PINB0);
Ein Bit löschen geht so
PORTB &= ~(1<<PINB0);
Du solltest, so wie in der Wikil, für die Register-Bits die korrekten Symbole verwenden
sowas ist pfui gack:
UBRRL = 23; //9600Baud siehe Baudratentabelle
UCSRB = 8 + 16; //Sender enable, Empfänger enable
Besser:
Code:uint16_t ubrr = (uint16_t) ((uint32_t) F_CPU/(16*BAUDRATE) - 1); UBRRH = (uint8_t) (ubrr>>8); UBRRL = (uint8_t) (ubrr); // UART Receiver und Transmitter anschalten // Data mode 8N1, asynchron UCSRB = (1 << RXEN) | (1 << TXEN); UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
Noch was: Bevor "Hello, world" nicht geht, ist an empfange nicht zu denken
https://www.roboternetz.de/wissen/in...lo.2C_world.29
Lesezeichen