Hallo
Ich habe ein Projekt, in dem ich 2 AVR Mega8 über CAN kommunizieren
lassen möchte.
Dazu habe ich die beiden Controller mit jeweils einem MCP2515 und einem
MCP2551 ausgestattet.
Die Kommunikation läuft nun soweit auch, dank der CAN-Libary von
kreatives-chaos.com
Nun möchte ich diese aber gerne auch so konfigurieren können das man
verschiedene Platinen über den gleichen Bus kommunizieren lassen kann.
Dazu sollte ein Filter und eine Mask gesetzt werden.
Nun habe ich dieses mit folgendem Code gemacht:
1 |
|
2 | // create a new filter for receiving all messages
|
3 | can_filter_t filter = {
|
4 | .id = 0x1,
|
5 | .mask = 0x7ff,
|
6 | .flags = {
|
7 | .rtr = 0,
|
8 | }
|
9 | };
|
10 |
|
11 | //Filter aktivieren
|
12 | can_set_filter(0, &filter);
|
Dieses funktioniert aber leider nicht. Es kommen immer noch alle
Nachrichten an.
Nun wollte ich fragen wie sich das mit den 5 Filtern verhält, die
gesetzt werden können. Muss man die restlichen Filter dazu so setzen das
dort nichts mehr durchgelassen wird oder kann man diese auch
deaktivieren?
Dazu habe ich leider im Datenblatt nichts gefunden.
Wäre nett wenn mir jemand eventuell auch nen Beispielcode zum MCP2515
geben könnte.
Ich verwende nicht die Extended ID, sondern die normale, 11 Bit lange ID
.
MFG Olli