Gast
#6333600
Hallo,
ich nutze einen Atmega16M1. Zumeist verwendet ich CAN. Es kann aber auch
sein, dass ein Knoten getrennt wird, seine Arbeit aber weiter verrichten
soll.
Dh. der Knoten ist vom Bus getrennt, es kann aber sein, dass er versucht
Nachrichten auf den Bus zu schicken. Wenn er dies tut, bleibt er hängen.
Sobald ich den Bus wieder verbinde geht es weiter.
Nun ist meine Frage, wie kann ich erkennen, ob der Bus gerade OFF ist,
sodass erst garnicht versucht wird, eine Nachricht zu senden.
Im Register CANGSTA gibt es das BOFF Bit. Wenn ich aber vor senden
folgendes prüfe:
if (CANGSTA & ( 1 << BOFF) == 0 {
// senden
}
Versucht er trotzdem zu senden. Merkt er erst das der Bus off ist, wenn
er versucht hat zu senden? Wie kann ich hier rangehen um mein Problem zu
lösen?