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.
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
Gast
#2245084
Zumal der AT90CANxxx einen eigenen CAN-Timer-Interruptvektor hat. Soll für Time-Triggered-CAN-Senden verwendet werden.
Gast
#2264706
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.