Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom AVR - Migająca dioda sterowana dowolnym przyciskiem

Popak 15 Sie 2012 18:34 1794 6
  • #1 15 Sie 2012 18:34
    Popak
    Moderator DIY

    Witam

    Zwracam się do was o pomoc bo nie wiem jak zrealizować, rozwiązać mój mały problem.
    Napisałem program na podstawie materiałów znalezionych w internecie który steruje czterema przekaźnikami "ON/OFF". Przekaźniki są wyzwalane z czterech mikroprzełączników. Program działa bez zastrzeżeń, ale chciał bym dodać małą funkcję wskaźnika odbioru na diodzie led. Ma to wyglądać tak że naciskam obojętnie jaki z czterech przycisków wtedy miga dwa razy dioda i załącza przekaźnik.
    Prościej:
    Naciskam S1 > miga dioda > załącza się przekaźnik 1
    Naciskam S2 > miga dioda > załącza się przekaźnik 2
    Naciskam S3 > miga dioda > załącza się przekaźnik 3
    Naciskam S4 > miga dioda > załącza się przekaźnik 4
    itd.
    Mój program:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Myślałem aby to zrobić jako pod program ale czy ma to sens?

    Pozdrawiam

    0 6
  • #3 15 Sie 2012 20:43
    Popak
    Moderator DIY

    Nie wiem czy ja robię coś nie tak (prawdopodobnie tak) ale jak dam procedurę Gosub i po wgraniu program nie daje oznak życia. Jak by było procek pusty.
    Bascom nie wywala mi błędu.
    Czy może ktoś mi pomóc?

    0
  • #4 15 Sie 2012 20:57
    Kuniarz
    Moderator Projektowanie

    Zrób inaczej:

    Declare Sub Miganie - deklaracja procedurki

    ...program (tu się coś dzieje)

    call Miganie - jeśli ma zamigać, to skocz do procedury Miganie

    'procedura :

    Sub Miganie

    toggle led
    toggle led
    ...

    costam cośtam

    end sub

    0
  • #5 15 Sie 2012 21:21
    Popak
    Moderator DIY

    Nie dokończa rozumiem.
    Chodzi o takie coś?

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #6 15 Sie 2012 21:42
    Kuniarz
    Moderator Projektowanie

    Zapomniałem o najważniejszym, nie masz w programie definicji procesora i taktowania.

    Oto przykład dla Atmega8 @ 8 MHz

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


    Daj to na samym początku programu.

    Aczkolwiek, Twój program się nie kompiluje, zamiast tych zmiennych bitowych oznaczających przekaźniki zastosuj aliasy.

    0
  • #7 16 Sie 2012 16:44
    Popak
    Moderator DIY

    Kuniarz
    Deklaracje procesora i taktowania daję :) Opuściłem ją specjalnie, a program kompiluje się i nie wywala błędów. Mimo wszystko i tak nie działa.

    Edit:


    Poradziłem sobie :)
    Zrobiłem to tak i działa tak jak chciałem.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Temat zamykam.
    Pozdrawiam

    0