Forum: Mikrocontroller und Digitale Elektronik MCP2515 richtig auswerten


von Tom (Gast)


Lesenswert?

Ich habe einen Arduino und ein MCP2515 und nutze diese Lib:
https://github.com/coryjfowler/MCP_CAN_lib
Ich kann auch Daten empfangen, nur wie vergleiche ich diese nun.
Angenommen es kommt die Nachricht ID=25A und Message=5,5,5,5,5,5,5,5.
Jetzt möchte ich irgendeinen Code ausführen.
Ich finde immer nur Beispiele um den Internen Filter zu setzen.

Beitrag #5190622 wurde von einem Moderator gelöscht.
von Felix U. (ubfx)


Lesenswert?

Tom schrieb:
> nur wie vergleiche ich diese nun.

Entweder in einem if mit vielen UND Verknüpfungen oder mit einem memcmp. 
Intern kommt das auf's gleiche raus.

Wenn ich mir die lib anschaue, kriegst du deine Nachricht ja in Form 
eines INT8U Arrays:
1
INT8U const code1[8] = {1, 2, 3, 4, 5, 6, 7, 8};
2
INT8U const code2[8] = {8, 7, 6, 5, 4, 3, 2, 1};
3
4
5
INT8U nachricht[8];
6
7
// ... nachricht über lib auslesen
8
9
if (memcmp(nachricht, code1, 8) == 0)
10
    // bearbeite code1
11
else if (memcmp(nachricht, code2, 8) == 0)
12
    // bearbeite code2
13
14
// alternativ:
15
16
if ((nachricht[0] == code1[0]) && 
17
  (nachricht[1] == code1[1]) &&
18
  (nachricht[2] == code1[2]) &&
19
   .... )
20
    // ....

: Bearbeitet durch User
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.