Hallo, ich bastel gerade mit einem AT90CAN128. Dabei habe ich ein kleines Problem... Ich würde gerne irgendwie prüfen ob der Controller eine CAN-Verbindung hat, weil er sich sonst nämlich beim senden meiner zyklischen Nachrichten aufhängt. Gibt es dazu eine Möglichkeit??? Gruß
>Ich würde gerne irgendwie prüfen ob der Controller eine CAN-Verbindung >hat, weil er sich sonst nämlich beim senden meiner zyklischen >Nachrichten aufhängt. Gibt es dazu eine Möglichkeit??? Setz einen Zähler der in bestimmten Zeitabständen runterzählt. Wenn eine Nachricht kommt setzt du ihn wieder auf den Startwert. Wenn er bei 0 ankommt hast du einen Fehler.
Damit eine Nachricht empfangen wird, muß ich aber zunächst eine Nachricht senden. Wenn aber keine Verbindung besteht, bleibt der Controller hierbei hängen... :-( Ich vermute daher das ich irgendwo im Controller abfragen muß ob die Nachricht abgesendet wurde. Finde da nur nichts passendes...
Hi Dennis, schau dir mall bit das Error Managment an auf Seite 245ff. Sobald du Nachrichten sendest und diese nicht acknowledged werden wird ein interne Zähler um 1 nach oben gesetzt. Wenn 255 Nachrichten nicht acknowledged werden geht der Can Controller in den Bus Off state und löst ein Interrupt aus. Wäre das nicht eine Möglichkeit für dich? Alternativ könntest du falls es schneller gehen soll auch dir mal die Seite 259f anschauen. Dort gibt es das MOB Status Register welches ein Acknowledgment Error Flag besitzt der anzeigt ob die Massage acknowledged wurde oder nicht. Diese kann auch ein Interrupt auslösen. MFG Daniel
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.