Forum: Digitale Signalverarbeitung / DSP / Machine Learning CAN Mailbox auslesen beim TMS320f2808


von zhinek20 (Gast)


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:
1
u08 rx_byte(void)
2
{
3
  while(ECanaRegs.CANRMP.all != 0x00000008){}    // Warte bis RMP gesetzt ist
4
  
5
  ECanaRegs.CANRMP.all = 0x00000008;             // clear RMP Bit
6
  
7
  return ...
8
}

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

von torwin (Gast)


Angehängte Dateien:

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).

von zhinek20 (Gast)


Lesenswert?

Hallo torwin,

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

von torwin (Gast)


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.

von zhinek20 (Gast)


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

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.