Stap 8: knipperen!
Tot slot laten we kijken naar de Pinken routine:
blink: sbi PORTD, 4 rcall delay cbi PORTD, 4 rcall delay rjmp blink
Eerst wij inschakelen PD4, dan zijn we rcall onze vertraging subroutine. We gebruiken rcall, zodat wanneer de PC een 'ret' verklaring krijgt het zal terugkomen op de regel die volgt op rcall. Dan de vertragingen vertraging routine voor 30 graven in de variabele overloop zoals we hebben gezien en dit bijna precies 1/2 seconden, is dan we PD4 uitzetten, een andere 1/2 seconden vertraging, en ga dan terug naar het begin opnieuw.
Het nettoresultaat is een knipperende LED!
Ik denk dat je zal nu eens dat "blink" waarschijnlijk niet de beste "hello world" programma in assembler is.
Oefening 3: de verschillende parameters in het programma te wijzigen, zodat de LED knippert tegen verschillende tarieven zoals een seconde of 4 keer een tweede, enz.
Oefening 4: aanpast zodat de LED in- en uitschakelen voor verschillende hoeveelheden van tijd is. Bijvoorbeeld op 1/4 seconde en vervolgens uit voor 2 seconden of iets dergelijks.
Oefening 5: de TCCR0B klok select bits wijzigt naar 100 en dan verder omhoog naar de tabel. Op welk punt gaat het geworden niet te onderscheiden van ons programma "hello.asm" van tutorial 1?
Oefening 6 (optioneel): hebt u een verschillende kristal oscillator, zoals een 4 MHz of een 13,5 MHz of wat dan ook, uit uw 16 MHz oscillator op je breadboard voor nieuwe wijzigen en zien hoe die invloed heeft op het knipperen tarief van de LED. U moet nu kunnen gaan door de precieze berekening en voorspellen precies hoe het zal van invloed zijn op het tarief.