Forum: Mikrocontroller und Digitale Elektronik SPI einlesen


von Tony (Gast)


Lesenswert?

Hallo

kann mir einer einen Tip geben wie ich 30 bit über die SPI in
verschiedene Register lade.

Dank im voraus

von Marcel (Gast)


Lesenswert?

8 Bitweise.

Mehr Info von deiner Seite -> mehr Antwort aus dem Forum.
Das ist jedenfalls meine Erfahrung.

Gruß Marcel

von Klaus (Gast)


Lesenswert?

Man kann nur was einlesen, wenn man gleichzeitig was rausschickt.
Hier also /SS aktiv machen, dann 4 x Dummy-Bytes rausschicken und
gleichzeitig einlesen. Erst zum Abschluss /SS wieder deaktivieren.

30 Byte genau geht so nicht, aber u.U. spielt das keine Rolle.

Sonst muss man 2x8 + 2x7 schicken / empfangen (soweit das einstellbar
ist) oder 2 x 15 (gibt's auch als Möglichkeit bei manchen
16-Bit-uPs).

"Zu Fuß", d.h. mit Ansteuerung aller Pins per Software kann man
beliebig was machen.

von Tony (Gast)


Lesenswert?

Sorry aber ich bin in Thema SPI ein Neuling wie lese ich die denn in ein
Register ein wenn ich die an einem Eingang reintakte.

von Marcel (Gast)


Lesenswert?

U0TXBUF = 0xFF;               /* Dummybyte an Sendepuffer */
while ((UTCTL0 & 0x01)==0);   /* warten bis gesendet wurde */
rcv = U0RXBUF;                /* Eingang Empfangspuffer speichern */
receiveBuffer[rcvCount--] = rcv;  /* dann abspeichern in Array */

Die Bezeichnungen sind abhängig von deinem uP, den wir nicht kennen.
Das ganze packst du in eine Schleife und fertig ist die Laube.

Gruß Marcel

von Tony (Gast)


Lesenswert?

ich habe einen ATmega128.

geht so was auch in Assembler oder nur in C.

Danke schon mal

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.