logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Przerobienie kodu wyświetlacza led 5x7 na 6x7 Atmega8 Bascom

Adr472 01 Sty 2010 13:20 4584 51
  • #1 7467229
    Adr472
    Poziom 10  
    Witam!
    Mam problem z przerobieniem kodu tablicy świetlnej z wyświetlaczem matrycowym led.
    Posiadam kod z książki Marcina Wiązani - Programowanie mikrokontrolerów AVR w języku Bascom przerobiony według instrukcji użytkowników w temacie: https://www.elektroda.pl/rtvforum/topic1471247.html
    Kod działa poprawnie ale posiadam matrycę zbudowaną ze zwykłych diod i określona litera jest tylko przez tak jakby jedną klatkę cała na wyświetlaczu przez co jest mało czytelna i na tym polega problem ponieważ chciałbym dorobić jeszcze jedną kolumnę aby litera była cała na wyświetlaczu przez dwie klatki a nie jedną.
    Kolejną kolumnę mam podłączoną pod Portb.5
    Próbowałem różnych sposobów by go przerobić ale zawsze cała kolumna świeciła albo nie świeciła.
    Prosiłbym o pomoc w przerobieniu tego kodu by dodać jedną kolumnę oraz (jeżeli tego nie zrozumiem) wytłumaczenie jak dodać kolejną.
    Pozdrawiam!



    
    'Program tablicy świetlnej
    'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED
    'Częstotliwość sterowania kolumn wyświetlacza wynosi ok. 333 Hz
    'czyli częstotliwość odświeżania kolumn wyświetlacza
    'wyniesie ok. 333/5 = ok. 67 Hz
    
    $regfile = "m8def.dat"                                      'informuje kompilator o pliku
                                                                  'dyrektyw mikrokontrolera
    $crystal = 8000000                                          'informuje kompilator
                                                                 'o częstotliwości oscylatora
                                                                 'taktującego mikrokontroler
    Config Pind.0 = Output                                      'linia PD0 jako wyjściowa
    Config Pind.1 = Output                                      'linia PD1 jako wyjściowa
    Config Pind.2 = Output                                      'linia PD2 jako wyjściowa
    Config Pind.3 = Output                                      'linia PD3 jako wyjściowa
    Config Pind.4 = Output                                      'linia PD4 jako wyjściowa
    Config Pind.5 = Output                                      'linia PD5 jako wyjściowa
    Config Pind.6 = Output                                      'linia PD6 jako wyjściowa
    Config Pinb.0 = Output                                      'linia PB0 jako wyjściowa
    Config Pinb.1 = Output                                      'linia PB1 jako wyjściowa
    Config Pinb.2 = Output                                      'linia PB2 jako wyjściowa
    Config Pinb.3 = Output                                      'linia PB3 jako wyjściowa
    Config Pinb.4 = Output                                      'linia PB4 jako wyjściowa
    Config Timer0 = Timer , Prescale = 256
                                                                 'konfiguracja Timer0 jako timer
                                                                 'z podziałem preskalera przez
                                                                 '256
    
    
    
    
    Declare Sub Tablica_sw
    Dim Tekst As String * 40
    Dim Szybkosc As Byte                                        'procedura tablicy świetlnej
    Dim Dl As Byte
    Szybkosc = 500                                              'tutaj regulujesz preśdkość przesuwania napisu
    
    
    
                                                                 'procedura tablicy świetlnej
    Declare Sub Pobr_kol_z_tab                                  'procedura pobiera kod kolumny
                                                                 'wyświetlanego znaku z tablic
    Declare Sub Przepisz                                        'procedura przesuwa wartości
                                                                 'wyświetlanych kolumn o kolejną
                                                                 'pozycję
    Declare Sub Wysl_zn                                         'procedura wysyłająca znaki
                                                                 'z tablicy Kol na wyjścia poru D
    On Timer0 Mult_wysw_matr                                    'przerwanie od przepełnienia
                                                                 'Timer0, skok do podprogramu
                                                                 'przerwania Mult_wysw_matr
    
    Dim Znak As String * 1                                      'zmienna, do której wpisywany
                                                                 'jest znak do wyświetlenia
    Dim Nr_kol As Byte                                          'zmienna określająca numer
                                                                 'zapalanej kolumny wyświetlacza
    Dim Kod_zn As Byte                                          'zmienna, do której wpisywany
                                                                 'jest kod ASCII wyświetlanego
                                                                 'znaku
    Dim Kol_zn As Byte                                          'zmienna, do której wpisywany
                                                                 'jest kod wyświetlanej kolumny
                                                                 'z określonej tablicy
    Dim Kol(5) As Byte                                          '5-elementowa tablica Kol do
                                                                 'której będą wpisywane
                                                                 'wyświetlane kody kolumn znaków
    Dim I As Byte                                               'zmienna licznikowa
    Dim J As Byte                                               'zmienna licznikowa
    
    C1 Alias Portb.0                                            'przypisanie linii PB0 nazwy C1
    C2 Alias Portb.1                                            'przypisanie linii PB1 nazwy C2
    C3 Alias Portb.2                                            'przypisanie linii PB2 nazwy C3
    C4 Alias Portb.3                                            'przypisanie linii PB3 nazwy C4
    C5 Alias Portb.4                                            'przypisanie linii PB4 nazwy C5
    
    Enable Interrupts                                           'odblokowanie globalnego systemu
                                                                 'przerwań
    Enable Timer0                                               'odblokowanie przerwania od
                                                                 'przepełnienia Timer0
    Load Timer0 , 94                                            'wpisanie do licznika wartości
                                                                 'początkowej 162 gdyż
                                                                 '256 - 94 = 162
    
    
    
    Do                                                          'początek nieskończonej pętli
    Tekst = "UWAGA! TEST "
    Call Tablica_sw                                             'tablicy świetlnej co 100 ms
    Loop                                                        'koniec pętli nieskończonej
    End                                                         'koniec programu
    
    
    
    Sub Tablica_sw(byval Tekst As String , Byval Szybkosc As Byte)
                                                                  'definicja procedury
                                                                  'z parametrem Tekst oraz
                                                                 'Szybkosc
    
    
     For I = 1 To 5                                             'pętla wykonywana 5 razy
      Kol(i) = 255                                              'wpisanie do wszystkich
                                                                 'elementów tablicy Kol wartości
                                                                 '255 powodującej wygaszenie
                                                                    'kolumn
     Next I                                                     'zwiększenie o 1 zmiennej I
    
    
     Dl = Len(tekst)                                            'odczyt ilości znaków w tekście
     For J = 1 To Dl                                            'zewnętrzna pętla wykonywana od
                                                                'wartości J = 1 do liczby znaków
                                                                'w tekście
    
    
    
      Znak = Mid(tekst , J , 1)                                 'przypisanie zmiennej Znak
                                                                   'znaku odczytanego z pozycji
                                                                 'określonej przez J z parametru
                                                                 'Tekst
    
    
      Kod_zn = Asc(znak)                                        'zamienia znak zmiennej Znak na
                                                                 'odpowiednik kodu ASCII
      For I = 1 To 5                                            'wewnętrzna pętla wykonywana 5
                                                                 'razy
       Call Pobr_kol_z_tab                                      'pobranie kodu kolumny do
                                                                 'zmiennej Kol(5) z odpowiedniej
                                                                 'tablicy stałych
    
       Waitms Szybkosc                                          'opóźnienie o czas zadany
                                                                 'parametrem Szybkosc
    
       Call Przepisz                                            'przepisanie wartości z tablicy
                                                                 'zmiennych Kol
    
      Next I                                                    'zwiększenie o 1 zmiennej I
    
    
      Kol(5) = 255                                              'zapisz do Kol(5) wartość 255, co
                                                                 'powoduje odstęp pomiędzy
                                                                 'przesuwanymi znakami
    
      Waitms Szybkosc                                           'opóźnienie o zadany czas
      Call Przepisz                                             'przepisanie wartości z tablicy
                                                                 'zmiennych Kol w lewo
    
    
     Next J                                                     'zwiększenie wartość zmiennej J
     For I = 1 To 4                                             'pętla wykonywana 4 razy
      Kol(5) = 255                                              'wygaszenie kolumny C5
      Waitms Szybkosc                                           'opóźnienie o zadany czas
      Call Przepisz                                             'przepisanie wartości z tablicy
                                                                 'zmiennych Kol w lewo
     Next I                                                     'zwiększenie o 1 zmiennej I
    End Sub                                                     'koniec procedury
    
    
    Sub Pobr_kol_z_tab                                          'definicja procedury
                                                                 'Pobr_kol_z_tab
    
     Select Case I                                              'w zależności od wartości
                                                                 'i wykonaj:
     Case 1:                                                    'jeśli I ma wartość 1, to
      Kol(5) = Lookup(kod_zn , Kol1)                            'wpisanie do tablicy Kol(5) kodu
                                                                'znaku dla kolumny 1
     Case 2:                                                    'jeśli I ma wartość 2, to
      Kol(5) = Lookup(kod_zn , Kol2)                            'wpisanie do tablicy Kol(5) kodu
                                                                 'znaku dla kolumny 2
     Case 3:                                                    'jeśli I ma wartość 3, to
      Kol(5) = Lookup(kod_zn , Kol3)                            'wpisanie do tablicy Kol(5) kodu
                                                                 'znaku dla kolumny 3
     Case 4:                                                    'jeśli I ma wartość 4, to
      Kol(5) = Lookup(kod_zn , Kol4)                            'wpisanie do tablicy Kol(5) kodu
                                                                 'znaku dla kolumny 4
     Case 5:                                                    'jeśli I ma wartość 5, to
      Kol(5) = Lookup(kod_zn , Kol5)                            'wpisanie do tablicy Kol(5) kodu
                                                                 'znaku dla kolumny 5
     End Select                                                 'koniec instrukcji wyboru
    End Sub                                                     'koniec procedury
    
    Sub Przepisz                                                'definicja procedury Przepisz,
                                                                 'przesuwa wartości wpisane do
                                                                 'tablicy Kol o jedną pozycję
                                                                  'w lewo
     Kol(1) = Kol(2)                                            'przepisanie wartości Kol(2) do
                                                                 'Kol(1) - wartość Kol(1) tracona
     Kol(2) = Kol(3)                                            'przepisanie wartości Kol(3) do
                                                                 'Kol(2)
     Kol(3) = Kol(4)                                            'przepisanie wartości Kol(4) do
                                                                 'Kol(3)
     Kol(4) = Kol(5)                                            'przepisanie wartości Kol(5) do
                                                                 'Kol(4)
    End Sub                                                     'koniec procedury
    
    
    
    Sub Wysl_zn                                                 'definicja procedury, która
                                                                 'w zależności od Nr_kol wpisuje
                                                                 'wartość z odpowiedniej tablicy
                                                                 'Kol do portu D
     Select Case Nr_kol                                         'w zależności od wartości Nr_kol
                                                                 '- numeru kolumny wykonaj:
     Case 0:                                                    'gdy Nr_kol = 1
      Kol_zn = Kol(nr_kol + 1)                                  'wpisanie do zmiennej Kol_zn
                                                                 'wartości pierwszego elementu
                                                                 'tablicy Kol (Nr_kol+1)
     Case 1:                                                    'gdy Nr_kol = 2
      Kol_zn = Kol(nr_kol + 1)                                  'wpisanie do zmiennej Kol_zn
                                                                 'wartości drugiego elementu
                                                                 'tablicy Kol (Nr_kol+1)
     Case 2:                                                    'gdy Nr_kol = 3
      Kol_zn = Kol(nr_kol + 1)                                  'wpisanie do zmiennej Kol_zn
                                                                 'wartości trzeciego elementu
                                                                 'tablicy Kol (Nr_kol+1)
     Case 3:                                                    'gdy Nr_kol = 4
      Kol_zn = Kol(nr_kol + 1)                                  'wpisanie do zmiennej Kol_zn
                                                                 'wartości czwartego elementu
                                                                 'tablicy Kol (Nr_kol+1)
     Case 4:                                                    'gdy Nr_kol = 5
      Kol_zn = Kol(nr_kol + 1)                                  'wpisanie do zmiennej Kol_zn
                                                                 'wartości piątego elementu
                                                                 'tablicy Kol (Nr_kol+1)
     End Select                                                 'koniec instrukcji warunkowej
     Portd = Portd And &B10000000                               'wyzerowanie 7 bitów rejestru
                                                                 'PORTD
     Kol_zn = Kol_zn And &B01111111                             'wyzerowanie najstarszego bitu
                                                                 'zmiennej Kol_zn zawierającej
                                                                 'kolumnę znaku do wyświetlenia
     Portd = Portd Or Kol_zn                                    'zapisanie do rejestru PORTD
                                                                 'wartości zmiennej Kol_zn bez
                                                                 'zmiany najstarszego bitu
                                                                 'rejestru PORTD
    End Sub                                                     'koniec procedury
    
    Mult_wysw_matr:                                             'podprogramu obsługi przerwania
                                                                 'od przepełnienia Timer0
     Load Timer0 , 94                                           'wpisanie do licznika wartości
                                                                 'początkowej
     Set C1                                                     'wygaszenie kolumny 1
     Set C2                                                     'wygaszenie kolumny 2
     Set C3                                                     'wygaszenie kolumny 3
     Set C4                                                     'wygaszenie kolumny 4
     Set C5                                                     'wygaszenie kolumny 5
     Call Wysl_zn                                               'wywołanie procedury
                                                                 'pobierającej i wysyłającej kod
                                                                 'wyświetlanej kolumny z tablic
     Select Case Nr_kol                                         'w zależności od wartości Nr_kol
                                                                 'wykonaj:
     Case 0:                                                    'gdy Nr_kol = 0, to
      Reset C1                                                  'włączenie kolumny 1
     Case 1:                                                    'gdy Nr_kol = 1, to
      Reset C2                                                  'włączenie kolumny 2
     Case 2:                                                    'gdy Nr_kol = 2, to
      Reset C3                                                  'włączenie kolumny 3
     Case 3:                                                    'gdy Nr_kol = 3, to
      Reset C4                                                  'włączenie kolumny 4
     Case 4:                                                    'gdy Nr_kol = 4, to
      Reset C5                                                  'włączenie kolumny 5
     End Select                                                 'koniec instrukcji wyboru
     Incr Nr_kol                                                'zwiększenie o jeden wartości
                                                                 'Nr_kol
     If Nr_kol = 5 Then                                         'jeśli wartość Nr_kol osiągnie
                                                                 '5, to
      Nr_kol = 0                                                'zerowanie wartości Nr_kol
     End If
    Return                                                      'powrót z podprogramu przerwania
    
    
    
    
    Kol1:                                                       'tablica kodów Kol1 dla
           'pierwszej kolumny wyświetlacza
           '- kolejność kodów odpowiada
           'numerom ASCII
    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:                                                       'tablica kodów Kol2 dla drugiej
           'kolumny wyświetlacza
           '- kolejność kodów odpowiada
           'numerom ASCII
    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:                                                       'tablica kodów Kol3 dla trzeciej
           'kolumny wyświetlacza
           '- kolejność kodów odpowiada
           'numerom ASCII
    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 111 , 110 , 107 , 107 , 111 , 106 , 110 , 126 , 126 , 121 ,
    Data 123 , 122 , 106 , 73 , 0 , 73 , 85 , 85
    
    Kol4:                                                       'tablica kodów Kol4 dla czwartej
           'kolumny wyświetlacza
           '- kolejność kodów odpowiada
           'numerom ASCII
    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 , 119 , 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:                                                       'tablica kodów Kol5 dla piątej
           'kolumny wyświetlacza
           '- kolejność kodów odpowiada
           'numerom ASCII
    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
    
    
  • #2 7467476
    kamyczek
    Poziom 38  
    Kolego jak chcesz sie czegoś nauczyć to proponuje potrenować samemu zaczynając od analizy i napisania przy każdej linijce co się dzieje. Tym bardziej że przykład jest książkowy. Tak ciężko dopisać sobie parę razy case 5 . i poprawić parę zmiennych zwiększając ich wartość o 1 ?
  • #3 7467510
    Adr472
    Poziom 10  
    Właśnie w ten sposób próbowałem, męczyłem układ już tyle razy przekładając go z płytki stykowej do programatora aż nóżki mi zaczęły odpadać najchętniej napisał bym swój program tak jak to miało miejsce z poprzednim moim projektem ponieważ nie potrafiłem przerobić gotowego ale nie bardzo wiem jak go napisać.
    Szukałem także dosyć dużo w internecie ale nic przydatnego nie znalazłem
    Jedyne co zdziałałem to to że gdy którakolwiek dioda z któregoś rzędu się zaświeci to w tej dodanej kolumnie zaświeci się dioda z tego samego rzędu
  • #4 7467897
    marco47
    Poziom 41  
    Witam
    To nie przekładaj tylko dorób na płytce stykowej wejście na programator.
    Napisz które linijki kodu są według Ciebie odpowiedzalne za wyświetlanie ,
    wtedy naprowadzimy Ciebie na dobre tory
    Mam nadzieję ze rozumiesz jak działa tryb multipleksowy , bo inaczej to będzie cięzko coś Ci pomóc.
  • #6 7468195
    marco47
    Poziom 41  
    Pokaz kod odpowiedzalny za wyświetlanie pojedyńczej kolumny jeśli potrafisz
    Jeszcze powinieneś dodać kod szóstej kolumny Kol6 , czyli zmienić cały zapis w tablicy kodów .
  • #7 7468308
    Adr472
    Poziom 10  
    Właśnie w tym problem że nie bardzo rozumiem ten kod.
    Za kod Kol6 kopiowałem kod z Kol2 po to aby zobaczyć czy cokolwiek zacznie się zmieniać ale dalej to samo.
    W kodzie mniej więcej wiem o co chodzi ale nie potrafię go rozpracować
    Za konkretną pomoc mogę dać ponad 100 punktów.
    Wydaje mi się że:
    Sub Pobr_kol_z_tab   
  • #8 7468339
    marco47
    Poziom 41  
    To zacznijmy od początku
    Przed programem głównym masz ustawienia

    Dim Kol(5) As Byte                            '5-elementowa tablica Kol do
                                                         'której będą wpisywane
                                                         'wyświetlane kody kolumn znaków
    C5 Alias Portb.4                                'przypisanie linii PB4 nazwy C5 


    Co powinieneś zrobić?
  • #9 7468373
    Adr472
    Poziom 10  
    Przerobić:
    
    Dim Kol(5) As Byte                            '5-elementowa tablica Kol do 
                                                                 'której będą wpisywane 
                                                                  'wyświetlane kody kolumn znaków 
    C5 Alias Portb.4                                            'przypisanie linii PB4 nazwy C5

    Na:
    
    Dim Kol(6) As Byte                            '6-elementowa tablica Kol do 
                                                                 'której będą wpisywane 
                                                                  'wyświetlane kody kolumn znaków 
    C5 Alias Portb.4                                            'przypisanie linii PB4 nazwy C5
    C6 Alias Portb.5      'tutaj dodać alias 6 kolumny
    
  • #10 7468398
    marco47
    Poziom 41  
    Ok!
    Następnie przechodzimy nizej do pętli For..Next
    Co powinniśmy zrobić?
  • #11 7468435
    Adr472
    Poziom 10  
    Zmienić:
    For I = 1 To 5                                             'pętla wykonywana 5 razy 
      Kol(i) = 255   

    Na:
    For I = 1 To 6                                             'pętla wykonywana 5 razy 
      Kol(i) = 255   

    Chociaż to chyba zbędne.
  • #12 7468487
    marco47
    Poziom 41  
    Jak zbędne?
    Wytłumacz dlaczego tak sądzisz .Przeciz ona jest odpowiedzalna za ilość wyświetlanych kolumn. We wszystkich pętlach For...Next ustaw np. 2 i zobacz co się stanie
    Mam nadzieję ze pracujemy nad programem z Twojego pierwszego postu
  • #14 7468573
    marco47
    Poziom 41  
    Szybkosc = 255                                    'tutaj regulujesz preśdkość przesuwania napisu

    Nie moze być 500 bo Szybkość jest typu Byte a nie Word

      Kol(5) = 255                                              'zapisz do Kol(5) wartość 255, co
                                                                 'powoduje odstęp pomiędzy
                                                                 'przesuwanymi znakami


    Wiesz co nalezy zrobić
    Po kazdej zmianie kompiluj program
    cdn...
  • #15 7468603
    Adr472
    Poziom 10  
    Przy 500 też działało ale ok zmniejszyłem do 250
    Kol(5) zmienić na Kol(6)?
  • #16 7468645
    marco47
    Poziom 41  
    Nie mogło kompilować z wartością 500 przy Szybkosc Byte
    Nastepna pętla
     For I = 1 To 4                                             'pętla wykonywana 4 razy 

    Teraz przechodzimy do
    Sub Pobr_kol_z_tab                                          'definicja procedury 

    Musisz dopisać nowe ... , domyślasz się?
  • #18 7468683
    marco47
    Poziom 41  
    Prawie . Pomyśl dlaczego tak:

     Case 1:                                                    'jeśli I ma wartość 1, to
      Kol(6) = Lookup(kod_zn , Kol1)                  'wpisanie do tablicy Kol(6) kodu
                                                                'znaku dla kolumny 1
     Case 2:                                                    'jeśli I ma wartość 2, to
      Kol(6) = Lookup(kod_zn , Kol2)                  'wpisanie do tablicy Kol(6) kodu
                                                                 'znaku dla kolumny 2
     Case 3:                                                    'jeśli I ma wartość 3, to
      Kol(6) = Lookup(kod_zn , Kol3)                  'wpisanie do tablicy Kol(6) kodu
                                                                 'znaku dla kolumny 3
     Case 4:                                                    'jeśli I ma wartość 4, to
      Kol(6) = Lookup(kod_zn , Kol4)                  'wpisanie do tablicy Kol(6) kodu
                                                                 'znaku dla kolumny 4
     Case 5:                                                    'jeśli I ma wartość 5, to
      Kol(6) = Lookup(kod_zn , Kol5)                  'wpisanie do tablicy Kol(6) kodu
                                                                 'znaku dla kolumny 5
     Case 6:                                          'jeśli I ma wartość 6, to
      Kol(6) = Lookup(kod_zn , Kol6)                  'wpisanie do tablicy Kol(6) kodu
                                                                 'znaku dla kolumny 6

    W
    Sub Przepisz                                                'definicja procedury Przepisz,

    dodać jedną linijkę , jaką?

    cdn...
  • #20 7468704
    marco47
    Poziom 41  
    Ok!
    Teraz następne
    Sub Wysl_zn                                                 'definicja procedury,

    Co nalezy zrobić ?

    cdn...
  • #24 7468753
    marco47
    Poziom 41  
    Ok!
    Program skompilował się?
  • #26 7468769
    Adr472
    Poziom 10  
    Skompilował się ale odczytało 4 błędy, nie wyświetliło ich to pewnie nie poważne.
    Zaraz wgram i zobaczę.
  • #27 7468783
    marco47
    Poziom 41  
    Jezeli pracujemy na programie z pierwszego postu to nie ma zadnych błędów kompilacji
  • #28 7468803
    Adr472
    Poziom 10  
    Dalej to samo co pisałem na początku
  • #29 7468819
    marco47
    Poziom 41  
    A masz napisaną tablicę
    Kol6:                                             'tablica kodów Kol6 dla szóstej kolumny


    Jak mozesz wgrywać program jezeli pokazuje Tobie błędy kompilacji
REKLAMA