Forum: Mikrocontroller und Digitale Elektronik MCP2515 richtig auswerten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tom (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.