Gast
#2363356
Moin Leute,
habe ein Problem ein Zeichen zu empfangen. Ich sende mit dem
Hypertermial ein zeichen indem ich es in die Plattform über die Tastatur
eingebe aber mein Programm geht nicht über die Abfrage ob ein Zeichen
verfügbar ist hinaus. Kann mir jemand bei diesem Problem weiter helfen?
hier der Code:
void inti_uart(){
UBRR0H = UBRRH_VALUE >> 8;
UBRR0L = UBRRL_VALUE & 0xFF;
UCSR0B |= (1<<RXEN0);
// Sendestatus
UCSR0C = (0<<UMSEL00)| //EinstellungAsynchronmodus
(0<<UMSEL01)|
(0<<UCSZ02) |
(1<<UCSZ01) |
(1<<UCSZ00) ;
}
int main(void){
DDRD &= ~(1<<0);
DDRC = (1<<3)|(1<<4);
PORTC = (1<<3)|(1<<4);
PORTD &= ~(1<<0);
char led_on=0;
inti_uart();
while (!(UCSR0A & (1<<RXC0))) // wartet bis Zeichen verfügbar ist
;
PORTC ^= (1<<3);
led_on = UDR0;
if (led_on == 0)
{PORTC ^= (1<<4);
}
while(1)
{
}
}
P.S. Das senden habe ich in einen anderen Programm mit den gleichen
Einstellungen getestet und es klappt. Also die Verbindung sich Terminal
und Controller ist in Ordnung.