Stap 3: Prototyping voortgezet
ShiftDatas.ino houdt in principe de array die de bytes voor elk teken/nummer dat kan worden weergegeven.
Het heeft ook de display () functie die in feite verschuivingen uit een byte naar een teken voor een cijfer, uitgeschakeld, verschuivingen uit een verschillende byte, en een ander cijfer uitgeschakeld. Dit is multiplexing.
Dit is de array van karakters. U kunt bellen naar een bepaalde byte "n" door te bellen naar cijfers [n].
Zoals ik al eerder zei, Q0, Q1, Q2, Q3, Q4, V5, V6 en Q7 elk besturingselement a, b, c, d, e, f, g en dp respectievelijk.
Als ik wilde om het cijfer '0' weer te geven, ik moet inschakelen segmenten a, b, c, d, e en f. Dit betekent dat de shift register moet verschuiven uit 0b11111100, die een hexadecimaal 0xFC is.
Dat is hoe ik dat deed.
Herinner me eerder hoe schreef ik vertoning (dig1, dig2, dig3, dig4) in de WATCHG-code?
Elk argument is verwerkt in deze functie.
Laten we zeggen ik wilde weergeven van 04:20. Dit betekent dig1 is 0, dig2 is 4, dig3 2, en dig1 is 0.
Als u wilt weergeven van alle nummers, doen ik dit:
- SHIFT uit bits voor 0, weer op dig4
- uitschakelen van dig4, verschuiven uit bits voor 2, weer op dig3.
- uitschakelen van dig3, verschuiven uit bits voor 4, weer op dig2.
uitschakelen van dig2, verschuiven uit bits voor 0, weer op dig1.
En dan fietst voor eeuwig. De microcontroller doet dit snel de cijfers lijken aan te tonen op hetzelfde moment, hoewel elk is overschakelen in- en uitschakelen echt snel.