www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 78k0 FF2 - CAN ID auslesen


Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich arbeite zur Zeit im Zuge einer Studienarbeit mit dem "78K0-Fx2 
CAN-it"-Starter-Kit von Nec. Bei dem Microkontroller handelt es sich 
meines Wissens nach um den "78K0 FF2".
Das ganze läuft soweit auch ganz gut. Würde aber gerne einen Modus 
implementieren, bei dem alle auf dem CAN-Bus liegende Nachrichten 
abgehört werden und anschließend die ID auf dem Display ausgegeben wird.
Ich stelle mir das so vor, dass ich einfach einen Message-Buffer 
einrichte der alle Nachrichten empfängt. Frage ist nur woher ich die ID 
der jeweiligen Nachricht bekomme. Im Datenböatt habe ich geschaut, aber 
nichts dazu gefunden. Hat jemand eine Lösung für mein Problem?

Bin natürlich für jeden Beitrag dankbar!

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee oder habe ich meine Frage einfach unverständlich 
formuliert?

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird wohl daran liegen, dass sich hier kaum einer (oder gar  keiner?) 
sich mit dem MC auskennt...Ich wusste nichtmal, dass es sowas gibt :-)

Und die ID steht natürlich mit im messagebuffer, ansonsten wäre die 
empfangene Botschaft nutzlos.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat mich jetzt doch interessiert...
http://www2.renesas.com/maps_download/pdf/U17553EJ...
Ab Seite 402 findest du doch alles, was du brauchst.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort!

Ich glaube ich habs verstanden. Ich habe mir einen Pointer 
initialisiert, der auf die Startadresse des Buffers + 0x1A / 0x1C zeigt. 
Der Inhalt müsste ja dann die empfangene ID sein. (C0MIDL01 ist nicht 
definiert).

   //CAN Empfangroutine:
   ...
   unsigned long int *pCOMID_u32;
   pCOMID_u32=(unsigned long int *)pBufferBaseAddress_u16 + 0x1A;
   pmsg_buffer_t->C0MID_u32 = *pC0MID_u32;
   ...
   //pmsg_buffer ist eine Zeiger auf struct RX_BUFFER_2 zeigt

   //main:
   result  = (unsigned long int)RX_BUFFER_0.C0MID_u32;


Kann das leider erst am Dienstag ausprobieren, weil ich nur dann einen 
Canalyser zum testen zur Vefügung habe.

Nochmal vielen Dank, ich werde natürlich berichten sobald ich es 
getestet habe!

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.