Hallo!
Kann mir, bitte, jemand erklären, wie ich filter und maske einstellen
soll?
Und wo ist der Unterschied zwischen Filter und Maske?
Ich werde aus den Datenblatt irgendwie nicht ganz schlau.
So sieht meine Initiaizierung aus:
Wenn du nicht am limit des MCs operierst, lies einfach alle ein und
schmeiss nicht benötigte Botschaften. Du musst eh anhand der ID
verzweigen, und wenn die ID nirgend passt -> Papierkorb.
Das sind aber viel zu viele IDs im Auto :)
Ich kann doch nicht jede Nachricht beim 1000kbps CAN, mit dem AVR
Empfangen, dann ID vergleichen und wenn es nicht passt, wegschmeisen.
Ich brauche nur eine, höchstens 2 IDs.
Das ist doch übel :)
Desswegen macht es ja Sinn, dass der MCP das filtert.
Leider kriege ich das so nicht zum Laufen.
Ich teste das im Moment so:
Ich habe eine kleine Schaltung, die immer eine Can Nachricht schickt.
Die ID davon ist 1475.
Wenn ich den MCP so konfiguriere, dass er die ID 1475 empfangen soll,
dass tut er das auch.
Mcp2515_write_register Rxf0sidh , &B10111000
Mcp2515_write_register Rxf0sidl , &B01100000
ID 1475 auf sidh und sidl verteilt.
Wenn ich aber ein Bit ändere:
Mcp2515_write_register Rxf0sidh , &B1011100!1!
Mcp2515_write_register Rxf0sidl , &B01100000
dann ist im Filter schon eine andere ID (WENN ICH DAS RICHTIG
VERSTANDEN HABE), dann empfange ich trotzdem die Nachricht mit der ID
1475.
Und das kapiere ich halt nicht. Es muss was sein, dass ich vom Grund her
nicht verstanden habe.
Desswegen auch die Fragen:
1. was ist Filter und was ist Maske? (einfach erklärt)
2. warum braucht man beides?
Bitte, auf den Datenblatt nicht verweisen, den habe ich schon sehr oft
gelesen.
Danke
Gruss Alex
Fehler gefunden :)
Es muss so sein:
'Maske
Mcp2515_write_register Rxm0sidh , &B11111111 'Maske High
Mcp2515_write_register Rxm0sidl , &B11100000 'Maske Low
'Filter
Mcp2515_write_register Rxf0sidh , &B10111000 'Filter High
Mcp2515_write_register Rxf0sidl , &B01100000 'Filter Low
, bit 3 EXIDE Filter fuer Standert Frame
Maske muss alles auf 1, damit der MCP jeden Bit der ankommenden ID prüft
und mit der ID vom Filter vergleicht.
Habe die Tabelle im Datenblatt erstmal nicht verstanden, aber jetzt.
Danke an alle.
Gruss Alex