-
-
Erfahrener Benutzer
Fleißiges Mitglied
Ich glaube ich weiß jetzt was dein Problem ist 
[Code]
while (!(UCSRA & (1<<RXC)));
[\Code]
Ist der Strichpunkt am Ende der Zeile Absichtlich?
Mir kommt vor, dass dein Programm eher kompliziert/Umständlich geschriben ist... zumindest ist das meine Ansicht.
Wieso fragst du überhaupt das bit RXC aus??? das Bit braucht man doch normalerweise gar nicht wenn man den UART_RECV Interrupt verwendet, oder täusche ich mich da?
Wieso liest du das UDR nicht in der Interrupt-Routine aus(z.B. könntest du es in das Array pc_data speichern) und setzt dir ein Flag, wenn du 3 Zeichen empfangen hast.
Wenn dieses Flag gesetzt ist wertest du das Array pc_data im Hauptprogramm aus.(Null Terminierung hinzufügen und atoi() aufrufen)
So, würde ich das halt schreiben, ist eine Möglichkeit und muss nicht umbedingt die Beste sein ...
So, ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen