Koristim 16f877A i napisao sam neki kod koji bi trebao upaliti led kad taster pritisnem 5 puta
probao sa Proteusom ali neradi onako kako bi trebao.Led se upali nakon prvog pritiska na taster.
Evo koda:
TRISD=%00000000
TRISB=%11111111
w1 var byte
symbol led1=portD.1
symbol t=PortB.1
output led1
input t
PortD=0
w1=0
mainloop:
if t=0 then
pause 2
w1=w1 + 1
endif
If w1=5 then
high led1
endif
goto mainloop
Ako ima tko volje da mi pomogne objasni u čemu je problem.
Ovdje je ocito problem u debouncing-u
Pogledaj kako se to rjesava imas na datasheetu tog PIC-a a imas i ovdje na forumu nekoliko primjera za rjesavanje tog problema. Ja sam to rjesavao na nacin da pratim promjenu stanja tastera ( biljezim i uporedjujem novo i staro stanje). Ako te zanima pogledaj moj digitalni dimmer.
Nije to debouncing.
Ako hoces brojati pritiske tastera, impulse, itd, moras pratiti opadajucu ili rastucu ivicu tog signala.
A ovo tvoje cudo broji se puta mainloop izvrsio dok je taster stisnut.
U buduce stavljaj kodove u tagove, imas gore dugme "Code".