Probleme mit PIC18 SPI

Gast #2859660
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
...
Gast #2859668
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;

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