Hallo,
ich versuche gerade 8 bit in Folge mithilfe des Pin-Change-Int´s bei
jeder Flanke einzulesen und frage mich, ob meine Gedanken da richtig
sind!
Ich lese bei jedem "clock"-Puls PB0 als "Datenbit" ein, schiebe danach
das Datenbyte, bis 8 bit erreicht sind!
Die Hauptidee war, ein counter-Register durch einen Preset von OWD(R16)
mit "1" und anschließendem schieben zu vermeiden.
1 | _PCINT0: SBIC PINB,0;Überspringe nächstes, wenn PB0=0
|
2 | ORI OWD,0b00000001 ;Bit speichern
|
3 | LSL OWD ;Bit-shift
|
4 | BRCC PCEND
|
5 | ;---Zähler=8 überschritten
|
6 | LDI OWD,1 ;Preset-Wert
|
7 | RETI
|
Hat jemand eine Verbesserungsidee?/ schneller?
Danke