potrebsno:
aktiviranjem tastera ukljucujem neki uredjaj(nebitno da detaljisem sta je uredjaj)
kad odreaguje senzor, iskljucuje se uredjaj.
gore navedeno sve radi kako treba. sad zelim da dodam zastitu
ako se posle xx vremena (nebitna je preciznost vremena) sonda ne iskljuci uredjaj da se aktivira zastita.
kod koji sam radio je dug i komplikovan da bi kacio sve pa sam sao izdvojio delove koda gde sam ubacio deo za zastitu.
problem je u tome da vrednost Vr za duzinu trajanje pauze sam stavio na 1000 i zastita mi odreaguje zato sto je to vreme krace od potrebnog vremena.
vrednost vr sam podizao i na kraju ga podigao na Vr=10000 i to je sad sigurno duze vreme i ciklus treba da se zavrsi pre zastite.
problem je sto mi se zastita aktivira u momentu kad se motor iskljuci.
portc.4 je izlaz za motor
nadam se da sam uspeo da pojasnim sta me muci... nebitno je doradjivati ovaj kod ako postoji pametnije resenje sa kojim da odradim zastitu
Code: Select all
---------------------------------------------------------------------
option_reg.0=1 podesavanja
option_reg.1=1
option_reg.2=0
option_reg.3=0
option_reg.5=0
option_reg.7=1
on interrupt goto Prekid
-----------------------------------------------------------------------
kad se aktivira portc.4 aktivira TMR0
if portd.6=0 then
portc.4=1
TMR0=0
vr=0
intcon.2=0
intcon.5=1
intcon.7=1
.
.
.
.
------------------------------------------------------------------------
kad se iskljuci portc.4 zaustavi TMR0
if pre1=1 then
if porte.0=0 then
portc.4=0
intcon.5=0
intcon.7=0
----------------------------------------------------------------------
INTERRUPT deo
disable
Prekid:
if intcon.2=1 and vr<10000 then
intcon.2=0
vr=vr+1
resume
endif
lcdout $fe,1
lcdout $fe,2,"zastita"
Prekid1:
if t3=0 then
intcon.2=0
intcon.7=0
intcon.5=0
goto rucni
endif
goto prekid1