Hi, also es geht um die Ansteuerung von einem (eigentlich mehreren kaskadierten) Schieberegister(n). Ich müsste ja irgendwie immer das BIT 0 eines zb. 32bit langen Wertes (bei 4 Schieberegistern) abfragen, je nach Value den Data-Ausgang High oder Low schalten (... einen Clock Impuls generieren ... ) und danach den Wert eins nach rechts schieben und dann wieder von vorne. Aber wie geht das in C ? Wäre echt super wenn mir das jemand erklären könnte! Hab echt alles abgesucht aber nichts gefunden :/ cu
for (i=0; i<datenlänge; i++) { if (daten&(8000>>(datenlänge-i))) //0x80 bei 8bit, 0x8000 bei 16 bit, etc { PINxy=1 } else { PINxy=0 } } So oder so ähnlich müsste es funktionieren, habs aber nicht nachgeprüft.
#define BYTE_LENGHT 8 char i, byte_var; byte_var= 149; //daten for(i=0;i<BYTE_LENGHT) { Pin_xy = ((byte_var >> i)&1); } glaub so geht es auch (auch nciht nachgeprüft) muss zugeben, dass ich das Beispiel von Harry Dyck nicht so ganz verstehe. jetzt 0x8000, oder 8000?
0x8000 natürlich, war ein Vertipper. Das Prinzip ist eigentlich ganz einfach, man vergleicht den auszugebenden Wert mit einer binären 1000000...,(zB 0x80 = 10000000B) wobei man die eins jedes mal eins weiter nach rechts schiebt. Wenn der Wert (binär gelesen) an der Stelle, wo die Eins steht auch eine 1 hat, wird der entsprechende PIN auf 1 gesetzt, ansonsten auf 0. Im Prinzip das Gleiche, wie bei dir tubbu, nur etwas asuführlicher.
aso, verstehe, ich schiebe den wert selbst, du den vergleichswert Alles klar ;-)
Hallo, danke euch - dachte mir schon dass ich das so in der art machen muss ;) hardware spi - naja ich muss ja mehrere "geräte" (später noch eine mmc und vl ein display) so ansteuern und da bietet es sich ja an einfach verschiedene ports zu nehmen und das ganze "software" technisch zu realisieren. außer einem geschwindigkeitzuwachs würde mir hw spi doch auch nichts bringen oder liege ich da falsch ?
> außer einem geschwindigkeitzuwachs würde mir hw spi doch auch nichts > bringen oder liege ich da falsch ? Ist eben alles bereits vorgegossen. Mehrere Geräte per SPI steuert man in der Regel damit an, daß jeder SPI-Slave sein eigenens `chip select' hat, das dann von einem anderen Portpin aus angesteuert wird. Nur der angesprochene Slave reagiert dann auf die Impulse. Sowas müßtest Du eigentlich auch mit Deinem Schieberegister hinbekommen.
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.