ich hab folgendes Problem: es geht darum, in einem µC (SPISlave) daten bereitzustellen, welche sich der zweite µC (SPIMaster) bei bedarf holen kann. Wie kann ich nun ein Datenbyte im SPISlave zur Verfügung stellen? danke mfg florian
Zuerst: RTFM Danach: Einfach auf Slaveseite das Datenbyte in das Datenregister schreiben. Indem Moment wo der Master was sendet, empfängt dieser gleichzeitig das Byte. Das Tutorial dieser Seite ist auch zu empfehlen. Alternativ ein simples Beispiel: http://www.mc-project.de/Pages/AVR/Software/SPI_ATMega8.zip
Der SPI-Slave schreibt einfach das Byte in das Datenregister und der Master holt es ab, wann er lustig ist. Der SPI-Slave kriegt dann einen Interrupt, wenn das Byte abgeholt wurde und kann erst dann ein neues Byte reinschreiben. Blöd ist nur, daß bei den AVRs das SPI keine Puffer hat, d.h. der Master muß nach jedem Byte eine Wartepause einlegen, damit der Slave genügend Zeit hat, das nächste Byte bereitzustellen. Einige neuere Atmel 8051-er haben deshalb einen SPI-Sendepuffer, d.h. man kann zu Anfang gleich 2 Bytes reinschreiben und hat dann immer genügend Zeit bereits das nächste Byte zu schreiben, während das vorhergehende noch gesendet wird. Peter
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.