mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Infineon XC167, Funktion CAN_vLoadData() inkorrekt //Obj


Autor: Holger B. (rst-el)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein Problem beim Senden von CAN-Daten mit dem Infineon XC167. 
Die DAVE Funktion CAN_vLoadData() scheint nicht korrekt zu arbeiten, 
denn die Daten, die per CAN gesendet werden, entsprechen nicht den Daten 
aus meinen Sendearrays. Im Memory Fenster habe ich die entsprechenden 
CAN-Data Register angeschaut und gesehen, daß der Fehler bereits hier, 
also beim Beschreiben dieser auftritt. Seltsamerweise funktioniert der 
Vorgang korrekt, wenn ich die Funktion im Single Step debugge.

void CAN_vLoadData(ubyte ubObjNr, ubyte *pubData)
{
  ubyte i;

  CAN_HWOBJ[ubObjNr].uwMSGCTR = 0xfaff;       // set CPUUPD and NEWDAT

  for(i = 0; i < (CAN_HWOBJ[ubObjNr].uwMSGCFG & 0xf0) >> 4; i++)
  {
    CAN_HWOBJ[ubObjNr].ubData[i] = *(pubData++);
  }

  CAN_HWOBJ[ubObjNr].uwMSGCTR = 0xf7ff;       // reset CPUUPD

} //  End of function CAN_vLoadData

Testhalber habe ich in die for-Schleife einige nop() Anweisungen 
eingefügt und siehe da, das Verhalten hat sich deutlich gebessert. Zuvor 
wurden nur unspezifische Daten gesendet, jetzt stimmen die Daten in 9 
von 10 Telegrammen. Ein Versuch, die Einstellungen des TCONCS7 zu 
ändern, hat nichts gebracht.


In einer anderen Software mit derselben Hardware funktioniert das 
Senden, weshalb ich hier bereits "querverglichen" und leider keinen 
Fehler gefunden habe:
- CAN-Init identisch
- DAVE Codegenerator derselbe
- Startup Codes identisch
- Daten werden in beiden Anwendungen aus dem iram-Bereich geladen

Das Empfangen per CAN funktioniert einwandfrei.

Hat jemand ähnliche Erfahrungen bzw. eine Idee?

Autor: TwiCAN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
EBCx_003 of the errata sheet

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.