Hallo @ all Ich verwende ATMEGA µC. Dort verwende ich momentan den Timerinterrupt um mir eine Testsignal zu erzeugen. Dies funktioniert bereits sehr gut. Jetzt möchte ich per RS232-Schnittstelle die Paramater für das Testsignal empfangen. Wie gehe ich da am besten vor damit keine Daten verloren gehen? Hat der RS232 Interrupt eine höhere Priorität als der Timerinterrupt, so das diese nicht ausgelöst wird? Muss ich ständig im der Timerinterruptservicroutine abfragen ob ein RS232 Interrupt aufgetreten ist und dann den Timerinterrupt vorzeitig beenden?
Hi Kommt auf deinen Timerinterrupt an. Wenn der kurz genug ist, eigentlich kein Problem. Die UART der ATMegas ist gepuffert. Ein empfangenes Byte geht erst verloren, wenn das nachfolgende vollständig empfangen wurde. MfG Spess
Nur Hardware Interrupt ist sinnvoll. Dann einzelne Bytes in Ringpuffer schreiben. Schon bei Baudrate 9600 müsstest du alle 1 Ms auf empfangenes Zeichen im Timerinterrupt prüfen... Zeitverschwendung.
Hi >Schon bei Baudrate 9600 müsstest du alle 1 Ms auf empfangenes >Zeichen im Timerinterrupt prüfen... Zeitverschwendung. Naja. 1ms sind bei 8MHz so zwischen 5000...6000 Assemblerbefehle. Die Problematik Interrupt und Zeit wird hier ganz gern mal überbewertet. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.