www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ID-Mask Berechnung


Autor: oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.