Jeżeli byłby ktoś w stanie wyjaśnić mi dlaczego realizując wyświetlanie multipleksowane w poniższy sposób uzyskuję wyświetlanie czterech zer ?
Wygląda mi to tak jakby zmienne Z1...Z4 nie były dostępne w momencie działania podprogramu przerwania. Jeżeli podprogram 'Wyswietlanie' umieszczę w pętli głównej to wszystko jest ok i wyświetla się ciąg '4795'.
Co się dzieje ze zmiennymi Z1...Z4 podczas startu podprogramu obsługi przerwania i dlaczego ?
Wygląda mi to tak jakby zmienne Z1...Z4 nie były dostępne w momencie działania podprogramu przerwania. Jeżeli podprogram 'Wyswietlanie' umieszczę w pętli głównej to wszystko jest ok i wyświetla się ciąg '4795'.
Co się dzieje ze zmiennymi Z1...Z4 podczas startu podprogramu obsługi przerwania i dlaczego ?
$regfile = "m16def.dat"
$crystal = 2000000
Dim C1 As Byte , C2 As Byte , C3 As Byte , C4 As Byte
Dim Z1 As Byte , Z2 As Byte , Z3 As Byte , Z4 As Byte
Config Porta = Output
Porta = 0
Config Portb = Output
Portb = 0
Cyfra1 Alias Portb.1
Cyfra2 Alias Portb.2
Cyfra3 Alias Portb.3
Cyfra4 Alias Portb.4
'---[ Ustawienie przerwań ]-----------------------------------------------------
Config Timer0 = Timer , Prescale = 32
Enable Timer0
On Timer0 Wyswietlanie
Enable Interrupts
'---[ pętla główna programu ]---------------------------------------------------
Do
Z1 = 4
Z2 = 7
Z3 = 9
Z4 = 5
Loop
'-------------------------------------------------------------------------------
End
'---[ Obsługa przerwania - WYŚWIETLANIE ]-----------------------------------
Wyswietlanie:
Reset Cyfra1
Reset Cyfra2
Reset Cyfra3
Reset Cyfra4
C1 = Lookup(z1 , Znaki)
Porta = C1
Set Cyfra1
Waitms 4
Reset Cyfra1
C2 = Lookup(z2 , Znaki)
Porta = C2
Set Cyfra2
Waitms 4
Reset Cyfra2
C3 = Lookup(z3 , Znaki)
Porta = C3
Set Cyfra3
Waitms 4
Reset Cyfra3
C4 = Lookup(z4 , Znaki)
Porta = C4
Set Cyfra4
Waitms 4
Reset Cyfra4
Return
'-------------------------------------------------------------------------------
'---[ Definicja znaków ]------------------------------------------------------
Znaki:
Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
