Skok na vrh nije interapt, u ovom slucaju je uslovni skok (if then) na programsku adresu 'vrh'. Interapti su rezervisani (ako se programski dozvoli) za predvidjena hardverska stanja mcu-a. Prvi i osnovni je 'reset', onda 'INT' spoljni prekid (interapt), brojac je pun (255+1), AD konverzija, UART ili vec sta drugo a zavisi od internog hardvera kontrolera.
Komanda 'gosub' uvek ide uz komandu 'return', dakle kada se izvrsi 'gosub vrh' podprogram ce terati dok ne dodje 'return' pa se programski brojac vraca na programsku adresu+1 pre 'gosub'. Ovako kako si napisao program nije ispravan zbog komade gosub na podprogramu 'vrh'.
Jedna od varijani je:
ili druga:
Komanda 'gosub' uvek ide uz komandu 'return', dakle kada se izvrsi 'gosub vrh' podprogram ce terati dok ne dodje 'return' pa se programski brojac vraca na programsku adresu+1 pre 'gosub'. Ovako kako si napisao program nije ispravan zbog komade gosub na podprogramu 'vrh'.
Jedna od varijani je:
Code:
if brojac=10 then
gosub vrh
endif
...
...
...
'******** potprogram **************************************
vrh:
toggle and1 'promena stanja pina
toggle and2
brojac=0 'vracanje brojaca na nulu
return
if brojac=10 then
gosub vrh
endif
...
...
...
'******** potprogram **************************************
vrh:
toggle and1 'promena stanja pina
toggle and2
brojac=0 'vracanje brojaca na nulu
return
ili druga:
Code:
if brojac=10 then
goto vrh
endif
...
...
...
'******** potprogram **************************************
vrh:
toggle and1 'promena stanja pina
toggle and2
brojac=0 'vracanje brojaca na nulu
goto pocetak
if brojac=10 then
goto vrh
endif
...
...
...
'******** potprogram **************************************
vrh:
toggle and1 'promena stanja pina
toggle and2
brojac=0 'vracanje brojaca na nulu
goto pocetak
Potpis
__*__
*___*
*___*