Hi simple,
schon mal im RN-Wissen nachgeguckt.
Hier gibt es ein Beispiel:
https://www.roboternetz.de/wissen/in...e_SPI-Hardware
Gruß m.a.r.v.in.
Hi,
ich möchte gerne ein Software SPI für meinen Atmega16 realisieren. Bisher habe ich leider keine entsprechenden Infos gefunden. Mir würde vorerst nur die Senderichtung genügen.
Hat jemand schon erfahrung wie ich einen solchen Datenstrom erzeugen kann, oder kann mir jemand Tips geben? Einen Takt zu erzeugen, das gelingt mir noch, aber wie ich dann die Datenworte mit dem Takt synchronisiere etc. ist mir schleierhaft.
Vielen Dank,
simple.
Hi simple,
schon mal im RN-Wissen nachgeguckt.
Hier gibt es ein Beispiel:
https://www.roboternetz.de/wissen/in...e_SPI-Hardware
Gruß m.a.r.v.in.
Hey super. Danke für die Ersthilfe. Das habe ich garnicht gefunden. Ich werde es mir mal zu Gemüte führen und sehen, dass ich zurecht komme.
Ok. Der Code "SPI-Ohne Hardware" ist soweit ich das sehe genau das was ich brauche.
Allerdings verstehe ich die Zeile
nicht. serpa ist doch ein Array. Deswegen müsste doch zumindest &serpa o.ä. dastehen?Code:unsigned char* serp = serpa+SERPA_SIZE;
denke, das ist OK so.
serpa ist hier ein Zeiger auf das Array, besser gesagt auf &serpa[0].
serp zeigt dann auf das Ende des Arrays. Alles ganz normale C Zeigerarithmetik.
C ist wunderbar (sonderbar)
Gruß m.a.r.v.i.n
Das Array serpa wird vom Ende nach vorne hin durchlauften, und zwar mit dem Zeiger serp, der auf Element *hinter* serpa initialisiert wird! (also serp = &serpa[SERPA_SIZE]).
Da der Zugriff über foo = *--serp (oder so) geschieht, wird als erstes serpa[SERPA_SIZE-1] gelesen.
Disclaimer: none. Sue me.
Lesezeichen