PIC18F458 CAN Filter

Gast #873490
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren