Witam
Przepisałem program tablicy świetlnej z wyświetlaczem matrycowym LED z książki "Programowanie mikrokontrolerow AVR w języku BASCOM" i wyskakuje sporo błędów, których nie potrafię skorygować. Jestem początkujący i myślałem, że z przepisaniem nie będzie problemów, tym bardziej, że poprzednio napisany program na ten wyświetlacz działał, ale jednak wystąpiły problemy. Wydaje się to troche dziwne, ponieważ jest to w końcu książka dla początkujących. Zamieszczam kod żródłowy, proszę o pomoc lub ewentualną korekcję.
Przepisałem program tablicy świetlnej z wyświetlaczem matrycowym LED z książki "Programowanie mikrokontrolerow AVR w języku BASCOM" i wyskakuje sporo błędów, których nie potrafię skorygować. Jestem początkujący i myślałem, że z przepisaniem nie będzie problemów, tym bardziej, że poprzednio napisany program na ten wyświetlacz działał, ale jednak wystąpiły problemy. Wydaje się to troche dziwne, ponieważ jest to w końcu książka dla początkujących. Zamieszczam kod żródłowy, proszę o pomoc lub ewentualną korekcję.
$regfile = "m8def.dat"
$crystal = 8000000
Config Pind.0 = Output
Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output
Config Timer0 = Timer , Prescale = 256
Declare Sub Tablica_sw(byval Tekst As String ,
Byval Szybkosc As Byte)
Declare Sub Pobr_kol_z_tab
Declare Sub Przepisz
Declare Sub Wysl_zn
On Timer0 Mult_wysw_matr
Dim Znak As String * 1
Dim Nr_kol As Byte
Dim Kod_zn As Byte
Dim Kol_zn As Byte
Dim Kol(5) As Byte
Dim I As Byte
Dim J As Byte
C1 Alias Portb.0
C2 Alias Portb.1
C3 Alias Portb.2
C4 Alias Portb.3
C5 Alias Portb.4
Enable Interrupts
Enable Timer0
Load Timer0 , 94
Do
Tablica_sw "*Bascom AVR*" , 100
Loop
End
Sub Tablica_sw(byval Tekst As String ,
Byval Szybkosc As Byte)
Local D1 As Byte
For I = 1 To 5
Kol(i) = 255
Next I
D1 = 0 Len(tekst)
For J = 1 To D1
Znak = Mid(tekst , J , 1)
Kod_zn = Asc(znak)
For I = 1 To 5
Call Pobr_kol_z_tab
Waitms Szybkosc
Call Przepisz
Next I
Kol(5) = 255
Waitms Szybkosc
Call Przepisz
Next J
For I = 1 To 4
Kol(5) = 255
Waitms Szybkosc
Call Przepisz
Next I
End Sub
Sub Pobr_kol_z_tab
Select Case I
Case 1:
Kol(5) = Lookup(kod_zn , Kol1)
Case 2:
Kol(5) = Lookup(kod_zn , Kol2)
Case 3:
Kol(5) = Lookup(kod_zn , Kol3)
Case 4:
Kol(5) = Lookup(kod_zn , Kol4)
Case 5:
Kol(5) = Lookup(kod_zn , Kol5)
End Select
End Sub
Sub Przepisz
Kol(1) = Kol(2)
Kol(2) = Kol(3)
Kol(3) = Kol(4)
Kol(4) = Kol(5)
End Sub
Sub Wysl_zn
Select Case Nr_kol
Case 0:
Kol_zn = Kol(nr_kol + 1)
Case 1:
Kol_zn = Kol(nr_kol + 1)
Case 2:
Kol_zn = Kol(nr_kol + 1)
Case 3:
Kol_zn = Kol(nr_kol + 1)
Case 4:
Kol_zn = Kol(nr_kol + 1)
End Select
Portd = Portd And &B10000000
Kol_zn = Kol_zn And &B01111111
Portd = Portd Or Kol_zn
End Sub
Mult_wysw_matr:
Load Timer0 , 94
Set C1
Set C2
Set C3
Set C4
Set C5
Call Wysl_zn
Select Case Nr_kol
Case 0:
Reset C1
Case 1:
Reset C2
Case 2:
Reset C3
Case 3:
Reset C4
Case 4:
Reset C5
End Select
Incr Nr_kol
If Nr_kol = 5 Then
Nr_kol = 0
End If
Return
Kol1:
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 107 , 109 , 29 , 73 , 127 ,
Data 127 , 127 , 107 , 119 , 127 , 119 , 127 , 125 , 65 , 127 ,
Data 94 , 61 , 115 , 13 , 97 , 127 , 73 , 79 , 127 , 127 , 119 ,
Data 107 , 127 , 95 , 89 , 64 , 0 , 65 , 0 , 0 , 0 , 65 , 0 ,
Data 127 , 125 , 0 , 0 , 0 , 0 , 65 , 0 , 65 , 0 , 78 , 63 , 1 ,
Data 3 , 1 , 28 , 15 , 60 , 127 , 43 , 127 , 111 , 126 , 127 ,
Data 125 , 0 , 113 , 113 , 113 , 119 , 103 , 0 , 127 , 125 , 0 ,
Data 127 , 96 , 96 , 113 , 96 , 119 , 96 , 118 , 111 , 97 , 99 ,
Data 97 , 110 , 103 , 110 , 127 , 127 , 127 , 119 , 119
Kol2:
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 15 , 0 , 85 , 27 , 54 , 47 , 99 ,
Data 62 , 119 , 119 , 122 , 119 , 124 , 123 , 58 , 94 , 60 , 62 ,
Data 107 , 46 , 86 , 56 , 54 , 54 , 73 , 74 , 107 , 107 , 62 ,
Data 63 , 54 , 59 , 54 , 62 , 62 , 54 , 55 , 62 , 119 , 62 , 126 ,
Data 119 , 126 , 95 , 111 , 62 , 55 , 62 , 55 , 54 , 63 , 126 ,
Data 125 , 126 , 107 , 119 , 58 , 0 , 75 , 62 , 95 , 126 , 63 ,
Data 106 , 118 , 110 , 110 , 106 , 64 , 90 , 119 , 110 , 126 ,
Data 123 , 62 , 111 , 119 , 110 , 107 , 107 , 119 , 106 , 1 ,
Data 126 , 125 , 126 , 117 , 122 , 108 , 119 , 127 , 62 , 119 , 99
Kol3:
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 6 , 127 , 107 , 0 , 119 , 42 , 31 , 93 ,
Data 93 , 65 , 65 , 121 , 119 , 124 , 119 , 54 , 0 , 58 , 46 , 91 ,
Data 46 , 54 , 55 , 54 , 54 , 73 , 73 , 93 , 107 , 93 , 58 , 48 ,
Data 59 , 54 , 62 , 62 , 54 , 55 , 54 , 119 , 0 , 62 , 107 , 126 ,
Data 103 , 119 , 62 , 55 , 58 , 51 , 54 , 0 , 126 , 126 , 113 ,
Data 119 , 120 , 54 , 62 , 96 , 62 , 63 , 126 , 95 , 106 , 110 ,
Data 110 , 110 , 106 , 55 , 90 , 111 , 32 , 110 , 117 , 0 , 115 ,
Data 123 , 122 , 106 , 73 , 0 , 73 , 85 , 85
Kol4:
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 15 , 0 , 85 , 108 , 93 , 127 , 62 ,
Data 99 , 119 , 119 , 127 , 119 , 127 , 111 , 46 , 126 , 54 , 22 ,
Data 0 , 46 , 54 , 47 , 54 , 53 , 127 , 127 , 62 , 107 , 107 , 55 ,
Data 62 , 59 , 54 , 62 , 93 , 54 , 55 , 54 , 110 , 62 , 1 , 93 ,
Data 126 , 95 , 123 , 62 , 55 , 61 , 53 , 54 , 63 , 126 , 125 , 126 ,
Data 107 , 119 , 46 , 62 , 75 , 0 , 95 , 126 , 111 , 106 , 110 ,
Data 110 , 118 , 106 , 63 , 90 , 111 , 126 , 33 , 110 , 126 , 111 ,
Data 111 , 110 , 107 , 115 , 111 , 106 , 126 , 125 , 125 , 126 ,
Data 117 , 122 , 102 , 62 , 127 , 119 , 99 , 119
Kol5:
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,
Data 127 , 127 , 127 , 127 , 127 , 107 , 91 , 92 , 122 , 127 , 127 ,
Data 127 , 107 , 119 , 127 , 119 , 127 , 95 , 65 , 127 , 78 , 57 ,
Data 123 , 49 , 121 , 31 , 73 , 67 , 127 , 127 , 127 , 107 , 119 ,
Data 79 , 65 , 64 , 73 , 93 , 99 , 62 , 63 , 80 , 0 , 127 , 63 , 62 ,
Data 126 , 0 , 0 , 65 , 79 , 66 , 78 , 57 , 63 , 1 , 3 , 1 , 28 , 15 ,
Data 30 , 127 , 43 , 127 , 111 , 126 , 127 , 112 , 113 , 125 , 0 ,
Data 115 , 95 , 65 , 112 , 127 , 127 , 127 , 127 , 112 , 112 , 113 ,
Data 119 , 96 , 119 , 125 , 125 , 96 , 99 , 97 , 110 , 97 , 110 ,
Data 127 , 127 , 127 , 119 , 119