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;
Hallo Holger, warum setzt du per Hand das _CS? Usic generiert das doch schon automatisch.
Hallo Holger, ich würde ganz einfach den USIC das generieren lassen, über Word und Frame länge kannst du alles einstellen wie Du das /CS benötigts.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.