Hallo, ich möchte Daten von Mikrocontroller 8051 zum LCD schicken. Das soll über die SPI Schnittstelle geschähen. ich habe einen kurzen Programm geschrieben. Kann jemand mir sagen ob das richtig ist oder nicht bzw. auf den richtigen weg bin. ich bedanke mich bei Allne im voraus. Sarah
Die meisten SPI sind ungepuffert. D.h. Du mußt nach jedem Byte warten, bis es gesendet wurde.
Danke Peter für dein Antwort Bin ich auf dem richtigen Weg ? > Die meisten SPI sind ungepuffert. > D.h. Du mußt nach jedem Byte warten, bis es gesendet wurde. soll ich nach jedem Byte eine wait zufügen z.b SPDAT= buf0; /* send an example data */ wait 100; SPDAT= buf1; wait 100; SPDAT= buf2; Danke Sarah
Danke Joerg
> Was für einen 8051 benutzt Du denn? Den 80515 aus dem Define?
ich benutze den Infeneon C515C.
Danke
> Nö, Du mußt das Ready-Flag pollen.
Kannst du es mir bitte etwas nähe bringen.;)
@ Sahra Srur (sahra) >> Nö, Du mußt das Ready-Flag pollen. >Kannst du es mir bitte etwas nähe bringen.;) Du musst aus dem Statusregister des SPI das Bit auslesen, was dir sagt, dass die Übertragung des Bytes abgeschlossen ist. Wie das genau heißt, steht im Datenblatt.
Hi alle, ich habe noch einige Fragen: 1)Soll ich jetzt eine Schleife Bilden und bitweise abfragen mit swich , case. übrigens ich fand kein Status Register für spi im Datenblatt.oder ist es SCF (Flag Register)
Sahra Srur schrieb: > ich fand kein Status Register für spi im Datenblatt SPI ist ein Modus der SSC-Einheit im C515C. Los gehts im UM1100 ab Kapitel 6.4 http://www.infineon.com/dgdl/c515c_um_1100.pdf > oder ist es SCF (Flag Register) Ja, denn dort drin ist ein TC "Transfer Completed" Flag, das anzeigt, ob wieder Daten verschickt werden können...
@ Sahra Srur (sahra) >1)Soll ich jetzt eine Schleife Bilden und bitweise abfragen mit swich , >case. Mann O Mann. Und du bist sicher, dass das Programmieren von Mikrocontrollern WIRKLICH was für dich ist? NEIN! Die Schleife warte auf das Ende der Übertragung für ein VOLLSTÄNDIGES Byte. Nix switch. >übrigens ich fand kein Status Register für spi im Datenblatt.oder ist es >SCF (Flag Register) Kann sein. Was steht denn in der Beschreibung dazu?
Das standard 8051 Include wird die Bit- und Registernamen des C515C nicht kennen. Du solltest versuchen, das passende C515C-Include zu bekommen (Keil-Webseite). Für die Details brauchst Du das UM1100, die stehen leider nicht im Datenblatt. Bei Infineon gibt es sicher auch Application-Notes mit Code-Beispielen.
@ Sarah (Gast) Noch ein Insider-Tip. In C gibt es auch Arrays, die sind ungeheuer praktisch.
Ich habe einen Beispiel gefunden im Internet. kann es mir jemand erklären. void it_SPI(void) interrupt 9 /* interrupt address is 0x004B */ { switch ( SPSTA ) /* read and clear spi status register */ { case 0x80: serial_data=SPDAT; /* read receive data */ transmit_completed=1; /* set software flag */ break; case 0x10: break; case 0x40: break; } }
Sahra Srur schrieb: > kann es mir jemand > erklären. Nein. Das ist irgendein Bröckchen, völlig aus dem Zusammenhang heraus gerissen. Ist in etwa so, ich sage Dir einen Satz und Du sollst mir sagen, wovon das Buch handelt. Ist das überhaupt C515C-Code?
Peter Dannegger schrieb: > Ist das überhaupt C515C-Code? Nein , das ist nur einen Beispiel den ich im Internet gefunden habe. ich komme nicht weiter Peter. Kannst du mir noch einen Hinweis geben.
@ Sahra Srur (sahra)
>ich komme nicht weiter Peter. Kannst du mir noch einen Hinweis geben.
Frauen zurück an den Herd?
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.