Forum: Mikrocontroller und Digitale Elektronik AT90CAN128 zyklisches Senden von Botschaften


von Nils K. (flamy)


Lesenswert?

Hallo,

ich habe mich vor knapp einem Jahr mal mit einem kleinen Projekt 
beschäftigt.
Aufgabe war das zyklische Senden von zwei CAN-Botschaften:
- Eine Botschaft mit beliebigem Inhalt mit statischen Werten - 
Zykluszeit: 20ms
- Eine Botschaft in der eine gemessene Frequenz eingebettet wird - 
Zykluszeit: 10ms.

Ich habe mich eine ganze Zeit lang damit auseinander gesetzt und habe 
unterschiedliche Lösungswege versucht.

Jedoch habe ich stets das Problem gehabt, dass die Botschaften NIEMALS 
100% zyklisch gesendet wurden. Zur Messung der Zykluszeiten habe ich 
CANoe mit einer CANcardXL von Vector Informatik verwendet. Die 
Zykluszeiten schwanken dabei jedoch recht willkürlich in einem Bereich 
von 5-35ms. Nach ewigem Probieren hab ichs dann entnervt in die Ecke 
gefeuert.

Da ich mir nun vorgenommen habe den Krempel nocheinmal aus der Ecke zu 
holen und mich damit nocheinmal auseinanderzusetzen vorab erstmal die 
Frage ob jemand vielleicht ein Code-Sample zur Hand hat, was meine 
Anforderung zuverlässig umsetzt.

Sobald ich alles wieder zusammengesammelt habe kann ich auch mal ein 
Code-Beispiel von mir hochladen.

Danke schonmal im Voraus.

Gruß Nils.

von Karl H. (kbuchegg)


Lesenswert?

Timer mit einer Interrupt Rate von 5ms aufsetzen.

Du musst die Botschaften zeitlich ineinander schachteln, sonst wird das 
nichts.


   0-------5ms-------10ms------15ms-------20ms
   Msg1              Msg1      Msg2       wieder von vorne anfangen

von cskulkw (Gast)


Lesenswert?

Zumal der AT90CANxxx einen eigenen CAN-Timer-Interruptvektor hat. Soll 
für Time-Triggered-CAN-Senden verwendet werden.

von wikky (Gast)


Lesenswert?

Hallo Zusammen,

ich stecke genau an diesem Problem fest.
Ich möchte meine Botschaften mit Hilfe des Timers T0 alle 3ms zyklisch 
auf den CAN-Bus legen und senden.

Den Timer habe ich hinbekommen, aber leider bekomme ich das mit dem 
Taskaufruf, der alle 3ms die Nachrichten hinterienander geschaltet 
senden soll net hin.

Könnt Ihr mir da weiterhelfen............CODE??

Wäre super von Euch...........schon mal vielen, vielen DANK!!


Grüße

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
Noch kein Account? Hier anmelden.