Forum: Projekte & Code PIC18F458 CAN Filter


von madjack84 (Gast)


Lesenswert?

Hallo zusammen,

ich weiß es gibt schon einige Threads die dieses Thema behandeln (habe 
ich schon durchforstet ) aber keine Antwort gefunden.

ich nutze einen PIC18F458 mit einem CAN Transceiver MCP2551. Der CAN 
läuft bereits, das ist nicht das Problem. Mein Problem ist die Filterung 
von irrelevanten Nachrichten.

ich benutze die CAN18xxx8.h
die Init der CAN Filter Register sieht folgendermaßen aus:

CANSetOperationMode(CAN_OP_MODE_CONFIG);

CANSetMask(CAN_MASK_B1, 0x0000073F , CAN_CONFIG_STD_MSG);      // RXM0 - 
Accept Filterd msgs with special ID
CANSetMask(CAN_MASK_B2, 0x00000770 , CAN_CONFIG_STD_MSG);      // RXM1 - 
Accept Filterd msgs with special ID
CANSetFilter(CAN_FILTER_B1_F1, 0x00000020 , CAN_CONFIG_STD_MSG);    // 
RXF0
CANSetFilter(CAN_FILTER_B1_F2, 0x00000000 , CAN_CONFIG_STD_MSG);    // 
RXF1
CANSetFilter(CAN_FILTER_B2_F3, 0x00000770 , CAN_CONFIG_STD_MSG);    // 
RXF2

CANSetOperationMode(CAN_OP_MODE_NORMAL);

Es sollen Nachtichten mit der ID
0x020
0x040
0x080
0x770

aufegenommen werden, alle anderen müssen geblockt werden.
Mit CANoe habe ich Nachrichten erzeugt die eigentlich nicht aufgenommen 
werden dürften...leider doch.

Habe ich bei der Init irgendwie ein Register vergessen?

Danke schonmal für alle Hinweise.

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.