Hallo,
ich betreibe ein CAN- Bus Netzwerk mit CAN Standard Frames (2048
identifiers).
Ich möchte nun einen Filter schreiben, welcher nur Pakete mit dem
Identifier "0x003" und als ersten Datenbyte den Wert "0x01" annimmt.
Ich verwende einen Arduino mit der MCP 2515 Libary, dazu ein Beispiel
der Filter:
https://github.com/coryjfowler/MCP_CAN_lib/blob/master/examples/Standard_MaskFilter/Standard_MaskFilter.ino
Setze ich nur eine Mask, so werden trotzdem alle Pakete angenommen,
setze ich beide Mask (muss ich immer beide setzen?), so werden gar keine
mehr angenommen.
Code:
1 | _bus->init_Mask(0,0,0x0FFFFF00); // Init first mask...
|
2 | _bus->init_Mask(1,0,0x0FFFFF00); // Init second mask...
|
3 | _bus->init_Filt(0,1,0x00030100); // Init first filter...
|
Auch bei folgenden Beispiel werden keine Pakete mehr mit dem Identifier
0x003 angenommen:
Code:
1 | _bus->init_Mask(0,0,0x0FFF0000); // Init first mask...
|
2 | _bus->init_Mask(1,0,0x0FFF0000); // Init second mask...
|
3 | _bus->init_Filt(0,1,0x00030000); // Init first filter...
|
Könnt ihr mir helfen?
Danke!