hi, ich habe eine Frage, es geht um den Zustand den CAN-Channel.Ich arbeite mit dem Mikrocontroller AT90CAN128. Im Datenblatt steht, dass das erste und zweite bit des Registers CANGSTA der Zustand des Channel gibt. Das Problem ist: wenn ich die CAN-Kabel ziehe, wird nicht passiert, der Inhalt von CANGSTA bleibt unverändern.CANGSTA= 0x04;bedeutet, dass der CAN-contoller aktiv ist. Hat jemanden schon sowas gemacht? Danke void AtCanGetBusState(void) { sprintf(tempstr, "CANGSTA: 0x%x\n",CANGSTA); break_point(tempstr, _LINE_); if (CANGSTA & (1<<BOFF)) Error(CanError0); else if (CANGSTA & (1<<ERRP)) Error(CanError1); else Error(CanError2); }
Ich kenne den AT90CAN128 nicht. Aber bei anderen Kontrollern bleibt der CAN Kontroller aktiv, auch wenn kein Kabel aufgesteckt ist. Das aktiv bedeutet, dass die Hardwareeinheit CAN im Mikrokontroller aktiviert ist, nicht das eine aktive Verbindung besteht.
Triggere das Senden eines Frames bei abgezogenem Stecker bzw. ohne Gegenstelle und schon geht er in den error passive Mode :)
Hallo, Alex im momemt sende ich ständig ein Frame auf den CAN-Bus, wenn ich das Kabel abziehe, passiert gar nicht. Wenn ich das Kabel wieder einstecke, bekomme ich die passive Mode. Ich möchte gern die Meldung bekommen an dem Zeitpunkt, der das Kabel abgezogen wird. Juergen. Ich finde dein Beispiel kompliziert für einen Anfänger. Danke
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.