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/ATmega8] Przycisk i odliczanie czasu dla LED

seja4321 26 Cze 2012 09:23 1880 7
  • #1 26 Cze 2012 09:23
    seja4321
    Poziom 7  

    Witam jestem początkujący ale nie wiem jak napisac program który ma działać następująco:

    Naciskam przycisk i trzymam go wciśniętego, w tym czasie zapala się dioda. Program czeka aż puszcze przycisk i gdy go puszczę zaczyna odliczać 15 minut, po tym czasie gaśnie dioda. Gdy jednak w czasie odliczania znowu zostanie wciśnięty przycisk i będzie trzymany to program czeka aż zostanie puszczony przyciski i to co wcześniej czyli zaczyna odliczać 15 min.

    Zrobiłem coś takiego ale niestety nie działa.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Ma to być tak jakby opóźniacz czasowy
    Bardzo proszę o pomoc bo jest mi to potrzebne.
    Dziękuję pozdrawiam

    0 7
  • #2 26 Cze 2012 10:02
    Rocho82
    Poziom 12  

    Nie jestem pewien ale podejrzewam, że coś ta linijka jest dziwna
    Loop Until Przycisk = 1 --> nie wykona tej pętli bo przycisk =0
    No i jeszcze czym różni się WAITMS od WAIT czy przypadkiem nie zatrzymujesz programu tymi poleceniami. Na moje to robisz martwą pętlę polecenim "Wait 900" i procek nic innego nie może zroić.

    0
  • #3 26 Cze 2012 10:05
    LordBlick
    VIP Zasłużony dla elektroda

    seja4321 napisał:
    Zrobiłem coś takiego ale niestety nie działa.
    A dla mnie to działa, tylko inaczej, niż chcesz, by działało. Może opisz, jakie są tego objawy, bo na tym polega opisywanie problemów.
    seja4321 napisał:
    Bardzo proszę o pomoc bo jest mi to potrzebne.
    Forum to nie formularz do pisania podań. Tu wystarczy precyzyjnie i logicznie opisać:
    - Czego się oczekuje.
    - Co się zrobiło w tym kierunku do tej pory.
    - Jaki jest tego wynik.
    Jeśli wykonasz te podpunkty rzetelnie, jest większa szansa, że więcej osób z przyjemnością odczuwaną przy pomaganiu pochyli się na problemem i ewentualnie zaproponuje poprawki lub inne rozwiązanie.
    seja4321 napisał:
    Dziękuję pozdrawiam
    Nie rozumiem, problem rozwiązany ? ;)
    Co do kodu, to jest dziwny, a jest w nim 900 sekund "zamrożenia" µC, podczas których ma siedzieć i czekać.
    EDIT: poprawka, nieuważnie przeczytałem za pierwszym razem. Dziękuję Ci szun za spostrzeżenia.

    0
  • Pomocny post
    #4 26 Cze 2012 22:27
    szun
    Poziom 19  

    seja4321
    Napisałem kilka linii kodu ,jest to jedno z możliwych rozwiązań
    twojego problemu z przyciskiem .
    program przetestowałem.

    Moja rada to testuj program na kilku kilkunastu sekundach.
    powodzenia.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Dodano po 46 [minuty]:

    Nie rozumiem dlaczego seja4321 został skarcony przez LordBlick,
    przecież pisze w dziale początkujący?
    LordBlick napisał:
    Co do kodu, to jest dziwny, Piszesz o 15 sekundach, a jest w nim 900 sekund "zamrożenia" µC. O co chodzi ?

    seja4321.
    Nigdzie nie pisze o 15 sek
    Jako zasłużony dla elektrody, wypadało by przynajmniej dokładnie przeczytać tekst jaki poddajesz krytyce.

    0
  • #5 26 Cze 2012 23:15
    seja4321
    Poziom 7  

    Dziękuję szun działa bardzo dobrze.
    Jeszcze mam pytanie czy da się przerobić tak aby wrzucić to na procek attiny13? bo akurat taki mam a szkoda atmega8 na taki czasowy układ

    Gdy zmienię po prostu procka to wywala error 22 line 38 Out of SRAM space

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Czyli to jednak za dużo na tego procka?
    A może zamiast attiny13 dać attiny2313?

    0
  • Pomocny post
    #7 27 Cze 2012 00:07
    sp3ots
    Poziom 35  

    Witam !

    seja4321 napisał:
    Dziękuję szun działa bardzo dobrze.
    Jeszcze mam pytanie czy da się przerobić tak aby wrzucić to na procek attiny13? bo akurat taki mam a szkoda atmega8 na taki czasowy układ


    Do swojego programu ( ATtiny13 ) dodaj te linie:

    $hwstack = 32
    $swstack = 0
    $framesize = 12

    Pozdrawiam. Stefan

    0
  • #8 27 Cze 2012 00:30
    seja4321
    Poziom 7  

    Dzięki wielkie sp3ots działa jak należy.

    0