ID-Mask Berechnung

Gast #1039938
Lesenswert?
• ▲
▼
Hi,
ich habe eine allgemeine Frage über die Funktionalität des Mask für den 
CAN-Protokoll.
Ich benutze den AT90CAN128 als Hardware. Im Datenblatt gibt es ein 
Beispiel, wie kann man die Nachrichten vorfiltrieren
ID:       111 1111 1xxx
Mask=7F1: 111 1111 1000
So empfängt man nur die ID 310-317.
Mit Hilfe dieser Beschreibung konnte ich alle Nachricten, die ich 
wollte, empfangen.
Jetzt möchte ich anders machen. Ich habe mein  Mikrocontroller 
programmiert, damit er alle Nachrichten über den Bus empfängt.ID: xxx 
xxxx xxxx
Mask: 000 000 000.Vom diesem Zustand möchte ich, dass der µC alle ID 
310-317.
ignoriert.
Wie setze ich die Bit in Register CANIDM1 und CANIDM2 oder welche Mask 
soll ich wählen, wenn ich jetzt NUR die ID 301 bis 307 NICHT empfangen 
will?
Ein Beispiel als berechnung wäre hilfeich.

Danke
Gast #1039963
Lesenswert?
• ▲
▼
Indem du ein Mob einrichtest, welches auf die ID 301 bis 307 reagiert.
Dieses Mob muss eine höhere Priotität als dein "Alles rein" Mob haben.

Im Can-Interrupt verwirfst Du dann einfach die Daten des 301..307 MObs.
Gast #1071998
Lesenswert?
• ▲
▼
Hallo,
ich komme wieder mit dem selben Problem.
ich erkläre zuerst, was ich mache.
Ich habe die Kommunikation über CAN-Bus zwischen zwei AT90CAN128 
erstellt.
Die Platine 1 sendet regelmässig verschiedene Nachricht auf den Bus mit 
ID=0,8,10,30.
Die Platine 2 soll nur empfangen.
Ich programmiere das Mob1, damit es auf die ID=0 hört, dafür sende 
ich(Id=0, Mask=7FF,mob=1). bis jetzt habe ich kein Problem ich bekomme 
nur die gewünschte Nachricht. Wenn ich jetzt die Mask=0 setze, bekomme 
ich alle 4 Nachricht über den Kanal 1.

Meine Frage ist:Ich bin im Zustand, Mob1 hört auf ID=0, wie konfiguire 
ich das Mob1, damit er vom diesem Zustand die ID=0 nicht mehr empfängt?

Danke schon

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.