Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Bascom][Atmega8] miganie 6-oma diodami

keermiit 16 Cze 2010 21:05 2816 10
  • #1 16 Cze 2010 21:05
    keermiit
    Poziom 9  

    Witam
    Zrobiłem pierwszy program do migania ledem.
    Postanowiłem pójść kroczek dalej i zachciało mi się migać 6-oma ledami
    No i ściana. Bo albo nie świeci żadna albo święcą ciągle wszystkie razem

    Chodziło mi o tego typu mruganie ledami:

    [Bascom][Atmega8] miganie 6-oma diodami

    tak podpięte :

    [Bascom][Atmega8] miganie 6-oma diodami

    a tu zamieszczam kod w Bascomie

    Code:

    $regfile = "m8def.dat"
    $crystal = 1000000

    Config Portb = Output                                       'portb jako wyjscie
    Config Portd = Output                                       'portd jako wyjscie




    Do

    Set Pinb.2
    Wait 1
    Reset Pinb.2

    Set Pinb.1
    Wait 1
    Reset Pinb.1

    Set Pinb.0
    Wait 1
    Reset Pinb.0

    Set Pind.7
    Wait 1
    Reset Pind.7

    Set Pind.6
    Wait 1
    Reset Pind.6

    Set Pind.5
    Wait 1
    Reset Pind.5

    Loop

    End




    Kombinowałem jeszcze w ten sposób ale też nic z tego
    Code:
    $regfile = "m8def.dat"
    
    $crystal = 1000000

    Config Portb = Output
    Config Portd = Output




    Do

    Set Pinb.2
    Waitms 300
    Reset Portb
    Reset Portd

    Set Pinb.1
    Waitms 300
    Reset Portb
    Reset Portd

    Set Pinb.0
    Waitms 300
    Reset Portb
    Reset Portd

    Set Pind.7
    Waitms 300
    Reset Portb
    Reset Portd

    Set Pind.6
    Waitms 300
    Reset Portb
    Reset Portd

    Set Pind.5
    Waitms 300
    Reset Portb
    Reset Portd

    Loop

    End


    Prosiłbym o pomoc bo dla mnie ten kod wydaje się być logiczny

    0 10
  • #2 16 Cze 2010 21:24
    phoszek
    Poziom 15  

    Hej,

    Według mnie problem tkwi w Set Pin. O ile się nie mylę, to do ustawiania stanu na porcie używa się Set Port, a nie Set Pin.. Więc zmień to, sprawdź i napisz co się zmieniło.

    1
  • #3 16 Cze 2010 21:28
    sp3ots
    Poziom 35  

    Witam !
    A może trzeba tak ?
    do
    reset led1
    set led2
    set led3
    set led4
    set led5
    set led6
    czekaj
    set led1
    reset led2
    set led3
    set led4
    set led5
    set led6
    czekaj
    set led1
    set led2
    reset led3
    set led4
    set led5
    set led6
    czekaj
    i tak dalej
    loop
    Tam gdzie led 1-6 wpisz nazwy portów.
    Powodzenia życzę. Stefan GG6293398

    0
  • #5 16 Cze 2010 22:31
    Logan
    Poziom 30  

    Nie prościej podpiąć diody pod jeden port i użyć polecenia Rotate ?

    1
  • #6 16 Cze 2010 23:22
    keermiit
    Poziom 9  

    phoszek po zmianie set pinx.x na set portx.x

    Tu kod

    Code:
    Do
    

    Set Portb.2
    Waitms 300
    Reset Portb
    Reset Portd

    Set Portb.1
    Waitms 300
    Reset Portb
    Reset Portd

    Set Portb.0
    Waitms 300
    Reset Portb
    Reset Portd

    Set Portd.7
    Waitms 300
    Reset Portb
    Reset Portd

    Set Portd.6
    Waitms 300
    Reset Portb
    Reset Portd

    Set Portd.5
    Waitms 300
    Reset Portb
    Reset Portd

    Loop

    End

    Diody LED po kolei gasną i po przejściu tej sekwecji miga tylko dioda podpięta pod Portb.0

    wygląda to mn. tak

    [Bascom][Atmega8] miganie 6-oma diodami



    Troche tych odpowiedzi się narobiło za co Wam dzięki
    zaraz przeanalizuje i zastosuje się do pozostałych porad

    Ok po zmianie kodu

    [Bascom][Atmega8] miganie 6-oma diodami

    diody migają jak powyżej ( rysunek LEDów pod schematem połączenia )

    myślałem że np:
    set portb.0 to ustawienie stanu wysokiego na pinie14 i że wtedy LED świeci
    a reset portb.0 to brak napięcia na LED i dioda nie świeci.

    a czy set portb to oznacza ustawienie wszystkich pinów portu B na stan wysoki a reset pinb.1 to stan niski jendego pinu to jest pinu nr.15 ??

    0
  • #7 16 Cze 2010 23:32
    polprzewodnikowy
    Poziom 26  

    Spróbuj tak

    Code:
    Do 
    

    reset Portb.2
    Waitms 300
    set Portb
    set Portd

    reSet Portb.1
    Waitms 300
    set Portb
    set Portd

    reSet Portb.0
    Waitms 300
    set Portb
    set Portd

    reSet Portd.7
    Waitms 300
    set Portb
    set Portd

    reSet Portd.6
    Waitms 300
    set Portb
    set Portd

    reSet Portd.5
    Waitms 300
    set Portb
    set Portd

    Loop

    End


    Albo odwróć diody i podłącz do masy.

    0
  • #8 17 Cze 2010 00:05
    keermiit
    Poziom 9  

    Po kolejnej przeróbce wygląda to tak

    Code:
    $regfile = "m8def.dat"
    
    $crystal = 1000000

    Config Portb = Output                                       'portb jako wyjscie
    Config Portd = Output                                       'portd jako wyjscie




    Do

    Set Portb.2
    Wait 1
    Reset Portb.2

    Set Portb.1
    Wait 1
    Reset Portb.1

    Set Portb.0
    Wait 1
    Reset Portb.0

    Set Portd.7
    Wait 1
    Reset Portd.7

    Set Portd.6
    Wait 1
    Reset Portd.6

    Set Portd.5
    Wait 1
    Reset Portd.5

    Loop

    End



    że wszystkie LED świecą i gaśnie 1 później 2 ale 1 się zaświeca póżniej gaśnie LED 3 a LED 2 się zaświeca.

    A ja staram się zrobić tak jak to opisałem 2 linijki wyżej tylko żeby diody nie świeciły a zapalała się LED 1 później LED 2 a LED 1 gasła, zapalała się LED 3 a LED 2 gasła.

    do reszty porad zastosuje się jutro bo już trochę zmęczony jestem.

    p.s Półprzewodnikowy możesz mi troche rozjaśnić to co napisałeś
    "Albo odwróć diody i podłącz do masy." bo ja naprawdę początkujący jestem i to co dla Ciebie oczywiste to dla mnie to może być czarna magia :D

    0
  • Pomocny post
    #9 17 Cze 2010 07:58
    polprzewodnikowy
    Poziom 26  

    Jeśli masz diody podłączone do plusa włączasz je komendą Reset a wyłączasz Set. Set podaje na pin stan wysoki (czyli plus) i dlatego ci to nie działa jak chcesz.

    0
  • #10 17 Cze 2010 22:11
    keermiit
    Poziom 9  

    półprzewodnikowy dzięki zrobiłem tak jak doradziłeś i działa.


    Opss. Co za brak kultury z mojej strony.
    Dzięki Wam za zainteresowanie i pomoc.

    0
  • #11 08 Sie 2010 00:49
    danthe
    Poziom 29  

    Jeszcze od siebie dodam że na schemacie nie widzę połączonych ze sobą wyprowadzeń GND po obu stronach scalaka oraz +Vcc z +Avcc

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo