-
-
Erfahrener Benutzer
Roboter Experte
!Wichtiger Bericht!
Falls Ihr vorhaben solltet, wie ich, beispielsweise alle 0,5 Sekunden eine Nachricht über den CAN-BUS zu versenden, und das per Timer-Interrupt steuern wollt, müsst ihr folgendes beachten...
Ihr dürft die Nachricht nicht direkt im Interrupt versenden!!!
Man sollte statt dessen im Interrupt eine Variable setzen, und diese dann in der normalen Operation abfragen, mit if() oder so...
WEIL:
Sollte der Zufall eintreten, dass genau dann der Interrupt ausgeführt wird, wenn der ATMEL gerade seine Daten an den CAN-Controller schickt, so wird diese Aktion unterbrochen, und die neue Information wird gesendet. Das führt unter umständen dazu, dass das Programm ( aber nicht die Interruptroitinen ) da hängen bleibt, wo er auf beendung der SPI-Transmission wartet.
Sollte man beachten! Ich hab stundenlang gesucht!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen