Witam!
Zrobiłem urządzonoko na uC Attin2313, które po naciśnięciu jednego przycisku zaświeca kolejno diody na porcie B; po pewnych bólach udało mi się. Teraz próbuje zrobić to samo lecz z wykorzystaniem przerwań... i mam małe kłopoty, a mianowicie napisałem sobie programik w Bascom'ie:
W symulatorze wszystko śmiga, po kolei zmienia się stan portów wraz ze wzrastającą wartością zmiennej(jeżeli wystąpi przerwanie), potem zmienna sie zeruje i od początku; lecz gdy programik załaduje do procka to już nie jest tak kolorowo. Procek automatem zwiększa zmienną A i następuje zmiana stanu portu. Wygląda to tak jakby uC symulował sobie przerwanie.
PS. Po kilkukrotnych resetach procesora raz udało mi się doprowadzić do tego, że kod działał jak należy (po przerwaniu następowała zmiana stanu portu), lecz potem znowu coś się popsuło.
Zrobiłem urządzonoko na uC Attin2313, które po naciśnięciu jednego przycisku zaświeca kolejno diody na porcie B; po pewnych bólach udało mi się. Teraz próbuje zrobić to samo lecz z wykorzystaniem przerwań... i mam małe kłopoty, a mianowicie napisałem sobie programik w Bascom'ie:
$regfile = "ATtiny2313.dat"
$crystal = 4000000
$baud = 9600
Dim A As Byte
Config Portb = Output
Config Portd = Input
Config Int0 = Falling
A = 1
Enable Interrupts
Enable Int1
On Int1 Adding
Do
If A > 4 Then
A = 0
End If
If A = 4 Then
Portb = &B01111111
End If
If A = 3 Then
Portb = &B11011111
End If
If A = 2 Then
Portb = &B11101111
End If
If A = 1 Then
Portb = &B10111111
End If
Loop
Adding:
Disable Interrupts
A = A + 1
Waitms 30
Return
End
W symulatorze wszystko śmiga, po kolei zmienia się stan portów wraz ze wzrastającą wartością zmiennej(jeżeli wystąpi przerwanie), potem zmienna sie zeruje i od początku; lecz gdy programik załaduje do procka to już nie jest tak kolorowo. Procek automatem zwiększa zmienną A i następuje zmiana stanu portu. Wygląda to tak jakby uC symulował sobie przerwanie.
PS. Po kilkukrotnych resetach procesora raz udało mi się doprowadzić do tego, że kod działał jak należy (po przerwaniu następowała zmiana stanu portu), lecz potem znowu coś się popsuło.