Forum: Mikrocontroller und Digitale Elektronik SPI controller in 8051


von Sarah (Gast)


Angehängte Dateien:

Lesenswert?

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

von Peter D. (peda)


Lesenswert?

Die meisten SPI sind ungepuffert.
D.h. Du mußt nach jedem Byte warten, bis es gesendet wurde.

von Sahra S. (sahra)


Lesenswert?

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

von Joerg L. (Firma: 100nF 0603 X7R) (joergl)


Lesenswert?

Was für einen 8051 benutzt Du denn? Den 80515 aus dem Define?

von Sahra S. (sahra)


Lesenswert?

Danke Joerg
> Was für einen 8051 benutzt Du denn? Den 80515 aus dem Define?

ich benutze den Infeneon C515C.

Danke

von Peter D. (peda)


Lesenswert?

Sahra Srur schrieb:
> soll ich nach jedem Byte eine wait zufügen

Nö, Du mußt das Ready-Flag pollen.

von Sahra S. (sahra)


Lesenswert?

> Nö, Du mußt das Ready-Flag pollen.

Kannst du es mir bitte etwas nähe bringen.;)

von Falk B. (falk)


Lesenswert?

@ 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.

von Sahra S. (sahra)


Lesenswert?

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)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Falk B. (falk)


Lesenswert?

@ 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?

von Peter D. (peda)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@ Sarah (Gast)

Noch ein Insider-Tip. In C gibt es auch Arrays, die sind ungeheuer 
praktisch.

von Sahra S. (sahra)


Lesenswert?

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;
  }
}

von Peter D. (peda)


Lesenswert?

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?

von Sahra S. (sahra)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@ Sahra Srur (sahra)

>ich komme nicht weiter Peter. Kannst du mir noch einen Hinweis geben.

Frauen zurück an den Herd?

von Sahra S. (sahra)


Lesenswert?

Falk Brunner schrieb:

> Frauen zurück an den Herd?
Hahahah bist witzig !!!!

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.