Hallo! Ich versuche gerade Daten über die SPI-Schnittstelle des PIC16F877 zu versenden. Wenn ich nur ein Byte sende bzw immer wieder das selbe Byte dann funktioniert das auch. Wenn ich aber in das SSPBUF-Register einen anderen Wert schreiben will um diesen Wert dann zu senden so wird dieser nicht übernommen. Im SSPBUF-Register steht immer noch der alte Wert drin. Gibt es da irgendein Status-Bit oder so das man erst löschen muss bevor man einen neuen Wert in das SSPBUF schreiben kann? Generell verstehe ich nicht ganz wie die SPI-Schnittstelle funktioniert. Laut Blockdiagramm gibt es ja nur ein Register (SSPBUF) das für Versand und Empfang der Daten zuständig ist. Kann mir das jemand kurz erklären wie die Schnittstelle funktioniert, also wie man Daten sendet und auch Daten empfängt? Nils
1. laut Datenblatt muß das SSPBUF-Register immer vor dem nächsten Bytesenden einmal gelesen werden, auch wenn's nur ein Dummy ist. 2. Ansonsten gibt es noch das WCOL-Flag Writecollision in SSPCON das anzeigt das Du unter Umständen auf das SSBUF geschrieben hast, obwohl es noch nicht leer war. In dem Fall must Du das WCOL wieder löschen, da sonst alle Schreibversuche ignoriert werden. Aber ich denke Dein Fall ist der erste Reiner
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.