Hallo Könnte mir jemand bitte erklären was die Befehl macht ? void spisend(unsigned char x){ unsigned char i; for(i=8;i>0;i--){ SCK = 0; if((x&0x80)){ DAT = 1; } else { DAT = 0; } SCK = 1; x <<= 1; } } Danke im Voraus
Das ist eine Funktion keine Befehl. Und so wie es aussieht Software SPI.
Torsten schrieb: > void spisend Du meinst: die ganze Funktion? Nimm an, die Funktion spisend wird mit dem Byte 0x5A aufgerufen (als Bitmuster ist das 0b01011010). Du spielst Computer und arbeitest die Funktion ab. Was passiert ganz konkret. Wei verändern sich die Pins SCK und DAT während der Abarbeitung dieser Funktion. Und dann siehst du mal zu, ob du da ein Muster darin findet, welches mit deiner Vorgabe des BItmusters in x zusammenhängen könnte. Sorry. Aber irgendwann muss jeder mal anfangen fremden Code zu analysieren. Diese Funktion ist nicht kompliziert, ihre Funktionsweise ist sehr überschaubar. Auch wenn ich zugeben muss, dass sie sich vielleicht nicht sofort erschliesst, wenn man sowas noch nie gesehen hat. Aber irgendwann muss jeder mal ins kalte Wasser springen und einfach machen. Da kommt so eine kleine, schnuckelige Funktion gerade recht.
Diese Funktion sendet vermutlich ein 8-Bit-Wort via SPI-Protokoll über zwei mit #define festzulegende Pins, und zwar mit dem MSB beginnend (LSB zuerst liesse sich erreichen wenn man die 0x80 in 0x01 ändert und den Shiftoperator umdreht). Übrigens ist es hilfreich wenn man mit C-Beispielen ankommt Compiler sowie Host-und Zielplattform zu nennen.
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.