Hallo zusammen, ich will das mein AVR es merkt wenn der PC per UART einen Befehl schick. Aber der AVR darf nicht darauf warten, sondern es mitbekommen wenn etwas kommt. Ansonsten soll er am Hauptprogramm weiterarbeiten. Wie macht ich das? Und zweitens wie kann ich in der Methode SIGNAL (SIG_OUTPUT_COMPARE1A) eine Methode ausführen die länger etwas macht ohne das SIG_OUTPUT_COMPARE1A auf das ende der aufgerufenen Methode wartet sondern einfach weiterzählt?? Danke
1. per interrupt 2. indem du die langlaufende im main() ausfuehrst und dort auf ein flag wartest, dass vom compare signal handler bei Bedarf gesetzt wird. Im main kannst du entweder loopen oder den uC per sleep auf den naechsten interrupt warten lassen. Um beides gleichzeitig zu machen musst du im main() nach dem return vom sleep() immer pruefen, von woher der IRPT kam (UART / compare) und die entsprechende Aktion starten.
danke für die Antwort! Ich habe inzwischen die UART library von Peter Fleury gefunden. Gibt es die library auch für die neueste WinAVR Version? Weil beim kompielen kriege ich den Fehler: In file included from uart.c:26: D:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
Die Signal.h braucht nicht mehr includiert werden. Also, einfach die betreffende Zeile löschen.
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.