BOGAD napisał:
OK to jeszcze dopytam tak, rozumiem że na początku przerwania zmieniam stan Edge_ na 0, liczy timer i config int0=rising ale co dalej załóżmy że nadejdzie zbocze narastające i co wtedy się dzieje?
No tak, zabrakło jeszcze jednej linijki... sory...
Powinno być:
If Edge_ =0 Then
Start Timer1
Config INT0=Rising
Else
Stop Timer1
Config INT0=Falling
End If
Toggle Edge
Działa to tak: najpierw masz wejście INT wyzwalane zboczem opadającym, jeśli ono nadejdzie to startuje Timer i zmienia aktywację przerwania na zbocze narastające. Po wyjściu z pętli If/Then zmienia wartość zmiennej Edge_ na przeciwną, sygnalizującą które zbocze jest aktywne (wtedy aktywne jest narastające). Wraca do głównej pętli. Gdy nadejdzie zbocze narastające na we INT to wykonywany jest drugi warunek w procedurze obsługi przerwania: zatrzymany zostaje Timer, następuje ponowna zmiana zbocza aktywującego przerwanie na opadające i na koniec odwrócenie zmiennej Egde_. Coś jeszcze nie jasne?
Sory za tę linijkę, ale jak się człowiek spieszy...