Cześć.
Napotkałem ostatnio na pewien problem, mianowicie w momencie gdy wywołuję przerwanie w swoim układzie, to po jego obsłudze główny blok programu nie jest kontynuowany, tylko wszystko zaczyna się od początku (albo resetuje procek).
W załączniku schemat urządzenia.
Załącznik usunąłem.
[zumek]
Przerwanie jest wyzwalane jednym z 9 przycisków, następnie bramka "wysyła" na INT0 sygnał o wciśniętym przycisku, a z wyjść dekodera odczytuję numer wciśniętego przycisku.
Będę wdzięczny za wszelkie porady, które spowodują, że program będzie kontynuowany od miejsca w którym się przerwał.
Z góry dzięki za pomoc.
Napotkałem ostatnio na pewien problem, mianowicie w momencie gdy wywołuję przerwanie w swoim układzie, to po jego obsłudze główny blok programu nie jest kontynuowany, tylko wszystko zaczyna się od początku (albo resetuje procek).
W załączniku schemat urządzenia.
Załącznik usunąłem.
[zumek]
Przerwanie jest wyzwalane jednym z 9 przycisków, następnie bramka "wysyła" na INT0 sygnał o wciśniętym przycisku, a z wyjść dekodera odczytuję numer wciśniętego przycisku.
Będę wdzięczny za wszelkie porady, które spowodują, że program będzie kontynuowany od miejsca w którym się przerwał.
$regfile = "m32def.dat"
$crystal = 11059200
'stany portow
Config Portd = &B11000000
'przerwania
Config Int0 = Low Level
Enable Interrupts
Enable Int0
On Int0 Przerwanie
'$$$$$$$$
Do
'tu cos sie dzieje
'waitms 10
Loop
'########
'odebranie przerwania i przekazanie go dalej
'debounce eliminuje drganie stykow tych 9 przyciskow
Przerwanie:
Debounce Pind.2 , 0 , Obslugaprzerwania , Sub
Return
Obslugaprzerwania:
'tu sobie robimy to co ma byc w przerwaniu
Waitms 100
Return
Z góry dzięki za pomoc.