Ja, passiert oft. google nach : UART blockiert AVR , oder so und wirst ein haufen Zeug finden, oder KBhit().
Dein Code wartet in der Schleife darauf das ein Zeichen empfangen wird, und zwar so lange bis ein Zeichen kommt. Kommt das Zeichen, so führt es die folgende Aktion aus und wartet dann weiter auf ein Zeichen. Damit blockiert es den Rest.
Lese von dem UART Speicher nur dann wenn auch was drin ist, sonst mach was anderes
probier mal so was :
if ( USCR1A & (1<<RXC) ) // oder wie dein USCR bei dir heißt, schau ins Datenblatt
{
// mache was , z.b.rufe getchar auf
}
else
{
// kann leer bleiben
}
// weiter mit deinem normalen Prog
kann aber auch sein, das die LIB von Peter auch deinen Timer nutzt oder ihn anders Initialisiert oder Interrupts abstellt, musst du alles Prüfen wenn du fremde Libs nutzt
Lesezeichen