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

[ATMega8] [Bascom] - Sterowanie Diodami

grzesiek9416 19 Sie 2010 00:35 1877 2
REKLAMA
  • #1 8413948
    grzesiek9416
    Poziom 10  
    Witam. Mam problem, otóż chcę napisać program który będzie działał następująco :
    Mam 6 diod , jedna ma pokazywać za układ jest włączony. Tymi pięcioma chcę sterować w ten sposób iż po kliknięciu na pierwszy przycisk program wybierze pierwszą diodę , za drugim kliknięciem na pierwszy przycisk drugą itd.
    Drugim przyciskiem chcę zmieniać stan wybranej diody na przeciwny.

    Napisałem program ale nie działa tak jakbym tego oczekiwał. :cry:
    Błąd jest taki ze kiedy klikam przycisk aby zmienić stan diody na przeciwny to nie działa. A kiedy np.: W "Podprogramie 2" wstawię zamiast "Toggle Led1" - "Config Led1 = 1" to ją zaświeci . Nie wiem co jest źle. Proszę o pomoc i ze zniecierpliwieniem czekam na odpowiedź.

    $regfile "m8def.dat"
    $crystal = 8000000
    
    Config Portd.1 = Output , Portd.2 = Output , Portd.3 = Output , Portd.4 = Output , Portd.5 = Output
    Config Pinb.0 = Input , Pinb.1 = Input
    Config Portd.1 = 0 , Portd.2 = 0 , Portd.3 = 0 , Portd.4 = 0 , Portd.5 = 0
    Set Portb.0
    Set Portb.1
    
    Przycisk1 Alias Pinb.0
    Przycisk2 Alias Pinb.1
    
    Led1 Alias Portd.1
    Led2 Alias Portd.2
    Led3 Alias Portd.3
    Led4 Alias Portd.4
    Led5 Alias Portd.5
    Ledon Alias Portb.7
    
    Declare Sub Onled
    Declare sub Tgled1
    Declare Sub Tgled2
    Declare Sub Tgled3
    Declare Sub Tgled4
    Declare Sub Tgled5
    
    Dim A As Byte
    Dim L As Word
    
    Const Maxa = 6
    
    Cls
    Do
       Debounce Przycisk1 , 0 , Ppr1 , Sub
          On A Gosub Onled , Tgled1 , Tgled2 , Tgled3 , Tgled4 , Tgled5
       Debounce Przycisk2 , 0 , Ppr2 , Sub
    Loop
    
    Sub Onled
       Config Ledon = 1
    End Sub
    
    Sub Tgled1
       L = 1
    End Sub
    
    Sub Tgled2
       L = 2
    End Sub
    
    Sub Tgled3
       L = 3
    End Sub
    
    Sub Tgled4
       L = 4
    End Sub
    
    Sub Tgled5
       L = 5
    End Sub
    
    End
    
    Ppr1:                                                       'Podprogram 1
       Incr A
          If A > Maxa Then
             Gosub Onled
       End If
    Return
    
    Ppr2:                                                       'Podprogram 2
    If L = 1 Then
       Toggle Led1
    End If
    If L = 2 Then
       Toggle Led2
    End If
    If L = 3 Then
       Toggle Led3
    End If
    If L = 4 Then
       Toggle Led4
    End If
    If L = 5 Then
       Toggle Led5
    End If
    Return
  • REKLAMA
  • Pomocny post
    #2 8414133
    Konto nie istnieje
    Poziom 1  
  • #3 8417349
    grzesiek9416
    Poziom 10  
    Aha dzięki , a to jak mam zrobić żeby dioda na początku nie świeciła ?
REKLAMA