May 062013
 

Efekat trčećeg svetla može da se postigne na više načina; u primeru 12 upotrebljen je najočigledniji, a u ovom je primenjen način koji početnicima verovatno nije najjasniji.

Tutor14.bas

Pre nego što objasnimo program da vidimo prvo šta se dešava sa vrednostima B porta kod efekta trčećeg svetla. Napisaćemo svih 8 kombinacija, njihove binarne i dekadne vrednosti:

00000001     1
00000010     2
00000100     4
00001000     8
00010000    16
00100000    32
01000000    64
10000000   128

Vidimo da je vrednost B porta za svaku sledeću kombinaciju tačno 2 puta veća od prethodne, što je i logično obzirom na binarni sistem. To znači da za sledeću kombinaciju ne moramo da isključimo prethodno upaljenu LED pa da uključimo sledeću već možemo prethodnu vrednost da pomnožimo sa 2 i dobijemo sledeću, a to upravo i radimo u ovom primeru. Na ovaj način program je nešto lakši za pisanje, a i kraći od primera 12 za 13 vorda.

Naredbom “latb=1” postavimo početnu vrednost za leč porta B, tj. uključimo LED D1. Nakon toga u “While … Wend” petlji pravimo pauzu koliko želimo da nam svetli jedna LED i zatim vrednost leča množimo sa 2 kako bismo dobili sledeću vrednost. Zatim imamo novu naredbu čiji je osnovni oblik “IF … THEN” (kompletna sintaksa će biti objašnjena u sledećoj poruci) koja vrši poredjenje vrednosti registra LATB i ako je nula, dodeljuje mu ponovo vrednost 1, tj. ponovo uključuje D1.

Postavlja se pitanje kako je moguće da vrednost LATB registra bude 0 ako je početna vrednost 1, a svaka sledeća je duplo veća. To je zato što je LATB registar 8-bitni tj. njegova maksimalna vrednost je 255. Posle sedmog množenja njegova vrednost je 128 što znači da posle sledećeg množenja vrednost treba da bude 256, ali ona prevazlilazi maksimum za bajt pa njegova vrednost postaje 0. Da nam je potrebna regularna vrednost matematičke operacije, ovo bi bila greška, tj. očekivani rezultat nikada ne bismo dobili, ali u ovom slučaju nam ta greška omogućava da proverimo da li je trčeće svetlo došlo do poslednje kombinacije kako bismo ponovo postavili početnu.

Veličina iskompajliranog programa: 81 Word-a