Witam.
Borykam się z problemem przerwania INT1 w procesorze Atmega88p.
Otóż przerwanie raz działa poprawnie , wykrywa odpowiednie zbocze , a innym razem załącza się praktycznie losowo .
Napisałem specjalnie prosty programik aby zobrazować problem .
Program jest pisany w bascomie jednak ze sporą ilością wstawek z assemblera .
(Na czystym bascomie zachowuje się tak samo )
Ma on wysłać szpilkę na 2 wyjściach w momencie załączenie się przerwania ( zbocze opadające pewnej transmisji) .
A tutaj zamieszczam wynik działania tego programu zarejestrowany analizatorem stanów logicznych . Kolor żółty i niebieski to transmisja . Przerwanie ma być wyzwalane sygnałem niebieskim (zbocze opadające ) Sygnały czerwony i zielony to wyzwolenie przerwania .
Jak widać po lewej stronie wszystko jest OK .
Natomiast po prawej zaczynają dziać się dziwne rzeczy .
Dodam jeszcze że jest to sprawa losowa , raz potrafi być dobrze przez 10 pojedynczych sygnałów a czasem co drugi raz przerwanie głupieje .
Oczywiście szpilki są przesunięte względem zbocza opadającego z powodu dosyć szybkiej transmisji , ale nie jest to w tym momencie istotne
Borykam się z problemem przerwania INT1 w procesorze Atmega88p.
Otóż przerwanie raz działa poprawnie , wykrywa odpowiednie zbocze , a innym razem załącza się praktycznie losowo .
Napisałem specjalnie prosty programik aby zobrazować problem .
Program jest pisany w bascomie jednak ze sporą ilością wstawek z assemblera .
(Na czystym bascomie zachowuje się tak samo )
Config Portd.3 = Input
Config Portd.4 = Input
Portd.3 = 1
Portd.4 = 1
Config Portd.1 = Output
Config Portd.2 = Output
Eicra = 8
On Int1 Aa
sei
Eimsk = 2
Osccal = 244
Deb Alias Portd.1
Led Alias Portd.2
clr r16
clr r20
Do
Loop
Aa:
Set Led
nop nop
Reset Led
Set Deb
nop nop
Reset Deb
reti
Ma on wysłać szpilkę na 2 wyjściach w momencie załączenie się przerwania ( zbocze opadające pewnej transmisji) .
A tutaj zamieszczam wynik działania tego programu zarejestrowany analizatorem stanów logicznych . Kolor żółty i niebieski to transmisja . Przerwanie ma być wyzwalane sygnałem niebieskim (zbocze opadające ) Sygnały czerwony i zielony to wyzwolenie przerwania .
Jak widać po lewej stronie wszystko jest OK .
Natomiast po prawej zaczynają dziać się dziwne rzeczy .
Dodam jeszcze że jest to sprawa losowa , raz potrafi być dobrze przez 10 pojedynczych sygnałów a czasem co drugi raz przerwanie głupieje .
Oczywiście szpilki są przesunięte względem zbocza opadającego z powodu dosyć szybkiej transmisji , ale nie jest to w tym momencie istotne