Forum: Mikrocontroller und Digitale Elektronik Probleme mit PIC18 SPI


von Jakob L. (Gast)


Lesenswert?

Ich programmiere gerade mit meinem PIC18F45K22 eine SPI Funktion. Das 
Initialisieren und das senden Funktioniert bereits, ich habe aber ein 
kleines Problem: Wie kann ich erkennen, dass der SPI Sendevorgang 
abgeschlossen ist und dann der Eingangsbuffer eingelesen werden kann.
Ich will kein delay einbauen.

Ich hätte mir dann den Code in etwa so vorgestellt:
1
...
2
SPP1BUF=write;
3
while(/*irgendwas???*/);
4
read=SPI1BUF;
5
...

von Jakob L. (Gast)


Lesenswert?

Ich habe jetzt eine Lösung gefunden:
1
CE_LOW();
2
SSP1BUF=write;
3
while(PIR1.SSP1IF==0);
4
CE_HIGH();
5
read=SPI1BUF;
6
PIR1.SSP1IF=0;

Das mit dem Interrupt-Flag hatte ich schon probiert, hat aber nicht 
funktioniert, da ich vergessen habe es immer wieder zurückzusetzen;

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.