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

Attiny2313 miganie diodami program

maxikaaz86 08 Sty 2011 19:17 1848 4
  • #1 8978096
    maxikaaz86
    Poziom 11  
    Witam.
    Napisałem program do migania diodami i mam trzy pytania:
    1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)?
    2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć?
    3.Czy poniższy kod jest poprawny, czy będzie działał?
    $regfile = "attiny2313.dat"
    $crystal = 8000000
    
    Config Portb = Input
            Portb = &B00000000
    Config Portd = Output
            Portd = &B0000000
    
    
     Do
    
       If Pinb.7 = 1 Then
       Waitms 30
       Toggle Portd.0
    
       End If
    
       If Pinb.6 = 1 Then
       Waitms 30
       Toggle Portd.1
    
       End If
    
       If Pinb.5 = 1 Then
       Waitms 30
       Toggle Portd.2
    
        End If
    
       If Pinb.4 = 1 Then
       Waitms 30
       Toggle Portd.3
    
       End If
    
       If Pinb.3 = 1 Then
       Waitms 30
       Toggle Portd.4
    
       End If
    
       If Pinb.2 = 1 Then
       Waitms 30
       Toggle Portd.5
    
       End If
    
       If Pinb.1 = 1 Then
       Waitms 30
       Toggle Portd.6
    
       End If
    
       If Pinb.0 = 1 Then
       Waitms 30
       Portd = 0
       Portd.0 = 1
       Waitms 500
       Portd.0 = 0
       Portd.1 = 1
       Waitms 500
       Portd.1 = 0
       Portd.2 = 1
       Waitms 500
       Portd.2 = 0
       Portd.3 = 1
       Waitms 500
       Portd.3 = 0
       Portd.4 = 1
       Waitms 500
       Portd.4 = 0
       Portd.5 = 1
       Waitms 500
       Portd.5 = 0
       Portd.6 = 1
       Waitms 500
       Portd.6 = 0
       Portd.7 = 1
       Waitms 500
       Portd.7 = 0
    
    
    
    
       End If
    
    
     Loop
    
    End
    


    Proszę o pomoc.

    Pozdrawiam Maxikaaz
  • #2 8978563
    buh
    Poziom 22  
    1. Tak, da się, pisząc "Reset Portd".
    2. Trzeba, bo skąd kompilator ma wiedzieć gdzie kończy się to co ma być w "Ifie".
    3. Jeśli da się skompilować to nie pozostaje nic innego jak sprawdzić program w praktyce. Często jest tak, że program wydaje się być poprawny i działać wg idei i założeń, a po odpaleniu nie chce działać wcale lub działa niepoprawnie.

    A co do poprawności programu, jak to dokładnie ma działać? Z ciekawości chciałbym się dowiedzieć po co wstawiłeś wszędzie "waitms"? O ile w pierwszych 7 "Ifach" rozumiem o co chodzi a nie rozumiem po co tam są "waitms 30" to w kolejnych nie rozumiem o co chodzi ale rozumiem po co są tam "waitms 500" :D.
  • #3 8978585
    maxikaaz86
    Poziom 11  
    Program ma włączać diody (naciskasz sw1 włącza się led1 itd. , przycisk 8 włącza każdą diodę po kolei w odstępie 0,5 sekundy).
    Waitms 30 niweluje drgania styków.

    Pozdrawiam Maxikaaz
  • Pomocny post
    #5 8982743
    Konto nie istnieje
    Poziom 1  
REKLAMA