Gast
#3927604
Hallo Zusammen, seit 2 Tagen kämpfe ich mit einem Problem mit einem dsPIC30F6012A und dessen CAN ISR. Kurze Umschreibung was ich machen möchte: Wenn CAN Botschaften ankommen (egal welche) soll der Controller wach bleiben und arbeiten, wenn keine CAN Botschaften mehr kommen soll er schlafen gehen. Was soweit geht: Der Controller wacht auf und bleibt wach und geht auch immer in seine ISR für CAN. Er schläft ein sobald der CAN abgezogen wird und geht schlafen. Hier beginnt das Problem: Er wacht auch wieder auf, geht dann aber nur noch einmal in die CAN ISR und geht deswegen sofort wieder schlafen. Ich muss die ganze Schaltung von der Stromversorgung trennen, danach ist der Controller wieder richtig initialiert so das er wach bleibt. D.h. nach einem wakeup vom sleep Modus ist der CAN nicht richtig initialiiert. Ich habe auch mal per Debug die Control und Statusregiter ausgelesen: Wenn alles geht hat C2CTRL : 0x08802 C2INTF : 0xC023 Wenn nix mehr geht C2CTRL : 0x08802 C2INTF : 0x8820 Es ist also RXEP: Receiver in Error State, Bus Passive bit 1 = Receiver in error state, bus passive gesetzt. Es ist also klar das da nix mehr geht. Nicht klar ist es mir wie das weg bekomme. Ich hab auch schon die APP-Note von Microchip durch und deren Beispiel Code für eine CAN-ISR umgesetzt. Diese sollte das Bit eigentlich löschen. Hilft aber nichts. Bitte helft mir! Danke