A 2x4*8=64 bit és 4 szó. Egy bit=(2+1+1+1)*64+2*4=328Cy, ami 16MHz esetén 20,5 us.
Van egy műszerem, amelynek 4Hz a frissítése. Mit mondjak, elég idegesítő. Ezért itt legyen 2Hz=500ms.
A 8 digit adatai legyenek a w0..w3 változókba.
Ha új adatot írsz a w#-be, akkor beállítasz egy frissíteni_köll flag-et. ;)
Csinálsz egy 500ms periódus időzítőt az 1ms interruptba.
Ha lejárt, akkor megnézed a frissíteni_köll értékét, és elzavarod a shiftelést, ha köll.
Ha látod a 0,0041%-os kitöltésű frissítést, akkor megnyerted a Titanic őrmatróza állást. :-D
Ha ez kész, akkor rátérhetünk a 4-4 digit külön frissítésére és a fényerőszabályzásra, ha köll. ;)
A shiftelést ennek az utolsó fejezete alapján készítheted el. Vigyázz, mert az lda helyett ldw (és a w0..w3) kell.
A rept direktívát helyettesítheted kopipészt utasítással. ;)