C AVR CAN interrupt problem

skratchi.at

Ensign
Registriert
Dez. 2008
Beiträge
205
Hi!

Hab gerade ein Projekt am laufen und ich wäre sehr froh wenn ich schnell Hilfe bekomme!!

Device:
AT90CAN32

Ich will mit dem CAN-Controller Nachrichten versenden und hab ein kleines Problem.
Wenn ich eine Nachricht versende, kommt der Interrupt für den spezifischen MOb immer wieder und nun habe ich keine Ahnung mehr was ich tun soll. Bisher habe ich auch nicht gefunden wie man diesen speziellen Interrupt korrelt quittiert, bzw. habe ich alles ausprobiert was ich weißt und gefunden habe.

Hoffe auf euch.

lg
 
Ich habe zwar keine Ahnung was ein "MOb" sein soll, und ich ich kenne mich bei Atmel/AVR Controller nicht aus, habe aber beruflich mit Renesas V850 Controllern und viel mit CAN Bus zu tun.

Was soll denn der IRQ überhaupt anzeigen? Was willst du denn quittieren?
Meiner Meinung nach ist der einzig wichtige und interessante IRQ in Bezug auf CAN der "RX IRQ" (RX wie Receive), der dir sagt, das eine neue CAN Botschaft empfangen wurde.
Beim Senden kann dir ein IRQ kaum sagen, dass die Botschaft empfangen wurde. Außer, dass sie soeben versendet wurde.

Und normalerweise werden IRQs ja nicht quittiert, sondern man reagiert auf sie, oder ignoriert sie :) wenn man nicht darauf reagieren will.

Im einfachsten Fall sollte es in einem Register des IRQ-Controllers ein Bit für genau diesen einen speziellen IRQ in deinem Fall geben, das dir anzeigt, dass der IRQ gesetzt wurde. Wir nennen das immer das IRQ-Flag oder Issued-Flag. Das Bit kanst du auf 0 setzen und schon ist er wieder weg, der IRQ.
 
Hi!

Danke für deine Antwort!
Habe folgendes heraus gefunden:

Anscheinend wird die spezielle IRQ (TX) nicht auf eine pos. Flanke sondern auf einen high Pegel getriggert. Der Pegel wird low, wenn ich etwas sende und bei beenden wieder high.

Mir war es nicht möglich nach ewiger Suche herauszufinden wie und ob man das wieder auf Low bringen kann. Da mir das eben nicht gelungen ist, schalte ich einfach die IRQ ab, bis ich sie wieder brauche.
Problem gelöst und nun kann der Pegel auch high bleiben. Meiner Meinung nach eine sehr saubere Lösung und nun werde ich auch nicht mehr dauernd unterbrochen.

lg
 
Zurück
Oben