Die Daten hast du schon im PIC drinnen und willst die nur über ein Schieberegister heraus bekommen, oder hab ich da was falsch verstanden?
Dann schließt du bei deinem Schieberegister den Serial-Data-In und den Clock an je einen als Ausgang definierten Pin vom PIC an.
Dein Schieberegister übernimmt immer den Pegel am Serial-Data-In, wenn du eine steigende Clock-Flanke hast. Also musst du nur das Signal anlegen und auf der Clockleitung eine steigende Taktflanke erzeugen.
Dann läuft das nach folgendem Muster:
- Pegel an Serial-Data-In anlegen
- Clock auf HIGH
- Clock auf LOW
- Pegel an Serial-Data-In anlegen
- Clock auf HIGH
- Clock auf LOW
- Pegel an Serial-Data-In anlegen
- ...
Wenn du im PIC die Daten in nem Register stehen hast (als Byte-Wert), dann musst du einfach ne Maske (00000001) nehmen, mit ner Kopie vom Wert ver-UND-en und dann den erzeugten Wert auf dem PIN ausgeben (Abfrage: wenn 1, dann High und dann Clock, wenn 0, dann Low und dann Clock).
Als nächstes dann den Ursprungswert wieder in dein Arbeitsregister kopieren und dort einmal rechtsverschieben. Dann wieder Maske drauf und ausgeben. Und wieder auslesen, rechtsverschieben, usw.
Du solltest dabei noch mitzählen, wieviel Bits du bereits durch hast, damit du nicht zuviele Bits rausgibst; ein Byte darf nur 8 Bit ergeben.
Eventuell musst du noch, je nach Geschwindigkeit von deinem Schieberegister, Verzögerungsschleifen zwischen Pegel anlegen und deinem Clocksignal, sowie zwischen deinem Clock-High und Clock-Low einsetzen.
So, jetzt musst du nur noch mein Geschriebsel in Code umsetzen...
MfG
Stefan
PS: Auch wenn du es eilig hast, wäre es doch sehr angenehm, wenn du zumindest ein wenig die Rechtschreibung beachten könntest.
Lesezeichen