Forum: Mikrocontroller und Digitale Elektronik CAN Receive Interrupt beim AT90CAN128


von Daniel U. (Gast)


Lesenswert?

Erstmal mein Setup:
µC: AT90CAN128
Software: AVR Studio4, Programmers Notepad 2, GCC Compiler
Tools: STK500, JTag, CAN-Dongel
C-Code: hab ich als Zip-File angehangen

Mein Problem:
Ich bin dabei eine Software zu entwickeln die Methoden zum Senden und 
Empfangen über CAN bereitstellen soll. Das Versenden klappt auch schon 
wunderbar mit Interrupt und allem drum und dran. Probleme hab ich noch 
beim Empfangen. Wenn ich ständig auf dem Bus lausche klappt auch der 
Empfang, aber ich möchte das ein Recieve Interrupt ausgelösst wird und 
erst dann die Methoden zum Empfang aufgerufen werden.
Das hat den Hintergedanken das die µC auf denen meine Routinen laufen 
sollen eigentlich andere Aufgaben haben und deshalb nicht ständig in 
einer Warteschleife stehen können um auf CAN-Nachrichten zu warten.

Wo wir gerade dabei sind, ich hab auch noch Probleme mit der Maskierung. 
Ich hab zwar verstanden wie man das berechnet, aber mir ist noch 
schleierhaft wie ich jetzt dem CAN-Controller beibringen soll das er 
eben nur die von mir bestimmten IDs empfängt.

Wie schaffe ich es zum Beispiel die IDs 120 - 122 und die IDs 140 - 142 
zu empfangen, aber eben alle dazwischen nicht.

Ich wäre für jede Hilfe sehr dankbar und möchte mich schonmal im Vorraus 
bedanken.

Daniel

von Daniel U. (Gast)


Lesenswert?

Manchmal hilft es seine Probleme einfach aufzuschreiben um sie Anderen 
zu erklären.
Bin mitlerweile selber auf die Lösung meiner Probleme gekommen. Trotzdem 
danke an Alle die sich schon Gedanken gemacht haben sollten.

cu Daniel

von M. R, (Gast)


Lesenswert?

Hallo,

man soll zwar tote ruhen lassen, aber es wäre nicht schlecht, wenn die 
Lösung des Problems auch anderen, die das selbe Problem haben, zur 
Verfügung gestellt würde.

Bis denne
M.R.

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
Noch kein Account? Hier anmelden.