mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP CAN Mailbox auslesen beim TMS320f2808


Autor: zhinek20 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich arbeiite gerade mit dem oben genannten DSP. Ich möchte die CAn 
Schnittstelle des DSP in Betrieb nehmen und orientiere mich nach den 
beiden Datenblättern "spra876" und "spru074" um die Schnittstelle zu 
initialisieren und die Mailboxes einzurichten.
Die Initialisierung klappt soweit und die Mailboxeinrichtung für Tx und 
RX klappt auch. Daten kann ich jetzt auch schon übertragen, aber nur in 
eine Richtung und zwar vom DSP zum PC, andersrum klappt es aber nicht, 
weil ich nicht genau weiss wie man die Daten aus der Empfangsmailbox 
rausholt.
Mein code für den Empfang von einem Byte sieht bis jetzt wie folgt aus:
u08 rx_byte(void)
{
  while(ECanaRegs.CANRMP.all != 0x00000008){}    // Warte bis RMP gesetzt ist
  
  ECanaRegs.CANRMP.all = 0x00000008;             // clear RMP Bit
  
  return ...
}


In meinem Code ist Mailbox Nr.4 die Empfangsmailbox. Meine frage ist:

Was muss ich als Rückgabewert zurückgeben, damit ich die Daten aus der 
Mailbox z.B in einer variable abspeichern will

Autor: torwin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi zhinek20,
wenn du die Nachrichten empfangen willst, würde ich empfehlen Interrupts 
zu verwenden, hier ein Beispielprogram für senden und empfangen (im 
Anhang).

Autor: zhinek20 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo torwin,

danke für dei Schnelle erste Hilfe.
Wieso empfielst du mir mit interrupts zu arbeiten?
Gehts das auch ohne?

Autor: torwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell kann man auch ohne Interrupts arbeiten, es kommt auf deine 
Anwendung an. Mit Interrupts hat man bessere Kontrolle über Timing und 
eingehende Daten.

Autor: zhinek20 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke dir für deine Hilfe. Du hast mir wirklich geholfen.
Ich lese die Nachrichten jetzt ohne Interrupts aus und es klappt ganz 
gut.

Danke dir für deine Hilfe

gruß zhinek

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.