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

Jak dodać efekt migania LED po 3 cyklach na ATtiny2313 w Bascom AVR?

piotrx21 12 Lut 2012 23:48 1295 3
REKLAMA
  • #1 10537929
    piotrx21
    Poziom 9  
    Witam, niedawno zacząłem swoją przygodę z Avr i programem bascom avr demo postanowiłem żeby mój pierwszy program sterował kilkoma LED-ami na początku napisałem program zapalający po kolei diody potem dodałem opcje żeby po dojściu do końca wracały się w tył . Mój problem polega na tym ,że chcę dodać efekt że np diody zrobią jakby 3 takie kółka a następnie zatrzymają się i zaczną np wszystkie migać, migną 5 razy a potem znów zrobią 3 kółka itd Wie ktoś jak to zrobić ? Z góry dzięki za pomoc :) Pozdrawiam .
    Mój aktualny program :
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10537989
    maniek1818
    Poziom 22  
    Ile kolega ma lat :?: Chyba mniej niż 14 skoro za BASCOM się bierzesz (z całym szacunkiem). Do zamieszczania listingów jest specjalna opcja przy pisaniu postu. I czemu ten kod taki "poszarpany". Po co jest na końcu kolejna pętla DO...LOOP :?:
  • REKLAMA
  • #3 10538042
    piotrx21
    Poziom 9  
    Przepraszam za ten poszarpany kod i tą drugą pętle to po prostu błędy przy kopiowaniu .Przepraszam też za to dodanie kodu w notatniku i dziękuje za poinformowaniu o opcji dodania go w poście . pozdrawiam .
  • #4 10549330
    arktik1
    Poziom 27  
    Zobacz, to to samo:

    
    
    $regfile = "attiny2313.DAT"
    $crystal = 1000000
    
    Config Portb = Output
            Portb = &B11111111
    Config Portd = Output
            Portd = &B11111111
    
    Dim Licz As Byte , Przelacz As Byte
    
    Licz = 0
    Przelacz = 0
    
    Do
    
    If Przelacz = 0 Then
    Incr Licz
    If Licz = 15 Then Przelacz = 1
    Else
    Decr Licz
    If Licz = 0 Then Przelacz = 0
    End If
    
    If Licz = 0 Then : Portb = &B01111111 : Portd = &B11111111 : End If
    If Licz = 1 Then : Portb = &B10111111 : Portd = &B11111111 : End If
    If Licz = 2 Then : Portb = &B11011111 : Portd = &B11111111 : End If
    If Licz = 3 Then : Portb = &B11101111 : Portd = &B11111111 : End If
    If Licz = 4 Then : Portb = &B11110111 : Portd = &B11111111 : End If
    If Licz = 5 Then : Portb = &B11111011 : Portd = &B11111111 : End If
    If Licz = 6 Then : Portb = &B11111101 : Portd = &B11111111 : End If
    If Licz = 7 Then : Portb = &B11111110 : Portd = &B11111111 : End If
    If Licz = 8 Then : Portb = &B11111111 : Portd = &B01111111 : End If
    If Licz = 9 Then : Portb = &B11111111 : Portd = &B10111111 : End If
    If Licz = 10 Then : Portb = &B11111111 : Portd = &B11011111 : End If
    If Licz = 11 Then : Portb = &B11111111 : Portd = &B11101111 : End If
    If Licz = 12 Then : Portb = &B11111111 : Portd = &B11110111 : End If
    If Licz = 13 Then : Portb = &B11111111 : Portd = &B11111011 : End If
    If Licz = 14 Then : Portb = &B11111111 : Portd = &B11111101 : End If
    If Licz = 15 Then : Portb = &B11111111 : Portd = &B11111110 : End If
    
    Waitms 100
    
    Loop
    

    Tylko trochę inaczej pisane.
REKLAMA