Zunächst danke für die Antwort. Da hatte ich wirklich noch einen
Denkfehler drinne.
Ich hätte da noch einmal eine Nachfrage.
Ich würde gerne dennoch überprüfen in welchem Status sich mein
Controller befindet. Dazu kann ich ja die entsprechenden Bits abfragen.
Hierbei habe ich allerdings noch Verständnisprobleme.
Ich denke, dass ich das C1INTF-Interrupt Register zur überprüfung nehmen
muss. Hier habe ich mal einen Ausschnitt.
bit 13 TXBO: Transmitter in Error State, Bus Off bit
1 = Transmitter in error state, bus off
0 = Transmitter not in error state, bus off
bit 12 TXEP: Transmitter in Error State, Bus Passive bit
1 = Transmitter in error state, bus passive
0 = Transmitter not in error state, bus passive
bit 11 RXEP: Receiver in Error State, Bus Passive bit
1 = Receiver in error state, bus passive
0 = Receiver not in error state, bus passive
bit 10 TXWAR: Transmitter in Error State, Warning bit
1 = Transmitter in error state, warning
0 = Transmitter not in error state, warning
bit 9 RXWAR: Receiver in Error State, Warning bit
1 = Receiver in error state, warning
0 = Receiver not in error state, warning
TXBO -> Bus Off. Das ist klar
Jetzt habe ich zwei Fragen:
Welche bits sind für den Zustand Error-Passive?
Bit 11 und 12? Oder Bit 9 und 10?
Wieso kann der sender und der Empfänger getrennt in den entsprechenden
Zustand wechseln? Ich dachte, das würde mein kompletter CAN-Controller
machen.
Oder ist es, dass wenn einer der INterrupts auslöst, mein CAN-Controller
z.B. über einen Transmittfehler in den Errror-Passive Zustand gewechselt
hat.
Welche Bits wären dann für den Zustandswechsel in Active-Error?
Oder muss ich die Status ganz anders abfragen?
Johannes