SSC Senden mit Infineon XE167, Funktion U2C1_SSC_ubTxDataReady()

OP #1820937
Lesenswert?

Hallo,
ich nutze beim Senden über U2C1 die Funktion U2C1_SSC_ubTxDataReady(), 
um festzustellen, ob die Daten versendet wurden. Die Funktion prüft den 
Status des Transmit Shift Indication-Flags. Anschließend nehme ich das 
CS-Signal für einen extern angeschlossenen Treiberbaustein weg.

Hierbei gibt es folgendes Problem: Die Funktion meldet bereits "Senden 
beendet", obwohl noch 1 Takt ausgegeben wird.  Das heißt, der Status des 
Flags wechselt bereits mit dem letzten Sendetakt. Die Funktion ist 
hierdurch nicht brauchbar für meine Zwecke.

Mit den Sende-Interrupt Bits scheint auch keine andere Möglichkeit zu 
bestehen, da hier ebenfalls die Flags als Grundlage dienen, nur nicht 
gepollt wie mit der o.g. Funktion.

Bleibt vermutlich nur eine kleine (ausgemessene) Zeitschleife  nach dem 
Sendebefehl, um das CS für den Treiber zu schalten

Hat jemand mit diesem Controller ähnliche Erfahrungen gemacht ?

Nachfolgend der Code-Auszug:

  OUTPT_CS_ELMOS_PIN = 0;

  U2C1_SSC_vSendData(ulSSIOutELMOSData);

  //warten, bis gesendet
  while(!U2C1_SSC_ubTxDataReady())
  {_nop();
  };

  OUTPT_CS_ELMOS_PIN = 1;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren