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 stroboskop led źle działa switch.

henryxxl 17 Cze 2012 21:42 1481 10
  • #1 17 Cze 2012 21:42
    henryxxl
    Poziom 26  

    Witam.
    Napisałem program który ma parę trybów migania led i mam dwa problemy otóż jak atmega wykonuje funkcje migania to wciśnięcie przycisku nie działa aby przejść do następnego trybu aż do kiedy atmega wczytuje jaki jest stan na porcie switcha i wykonuje instrukcje, czy jest możliwość zrobienia tak ze jak wciśnięcie przycisk to przełącza na następny tryb beż różnicy w jakiej części pętli program się wykonuje?
    Drugi problem to taki ze jak dłużej trzymam przycisk to atmega skaczę po podprogramach a chcę aby tylko skoczyła do następnego.
    Proszę o pomoc jak to napisać aby działało tak jak ja chcę

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0 10
  • #2 17 Cze 2012 21:47
    Kuniarz
    Moderator Projektowanie

    Generalnie postaraj się tak napisać program, żeby uniknąć instrukcji "wait" i "waitms". Program w tym czasie nie robi kompletnie nic, a już tym bardziej nie sprawdza stanów przycisków.
    Zamiast Wait można użyć pętli które się wykonują wielokrotnie. Zdefiniuj X jako word, wykonaj pętlę for x = 1 to 50000 - w pętli umieść sprawdzanie przycisków i masz problem rozwiązany.
    Bardziej elegancko jest sprawdzanie stanu przycisków w przerwaniach i ustawianie jakieś flagi, np. "przycisk 1 wciśnięty = 1"

    0
  • #3 17 Cze 2012 22:11
    henryxxl
    Poziom 26  

    Może kolega mi pomóc to napisać w przerwaniu?

    0
  • Pomocny post
    #4 17 Cze 2012 23:09
    bobeer
    Poziom 28  

    Weź sobie załaduj do jakiegoś podprogramu fragment w którym sprawdzane są przyciski, jednocześnie w tym podprogramie odliczaj opóźnienie.
    (np zrób pętle która będzie miała waitms 1 - ilość wykonań pętli ilość opóźnienia ale równocześnie sprawdzany port przycisku)
    Zamiast rozkaz waitms wywołuj ten podprogram.
    To tak najprościej i bez przerwań.

    0
  • Pomocny post
    #5 18 Cze 2012 13:53
    30402
    Użytkownik usunął konto  
  • #6 18 Cze 2012 15:06
    henryxxl
    Poziom 26  

    Program tylko rozjaśnia led bardzo powoli i na tym się zatrzymuję, switch nie działa. Co jest nie tak?

    0
  • #7 18 Cze 2012 15:16
    30402
    Użytkownik usunął konto  
  • #8 18 Cze 2012 15:46
    henryxxl
    Poziom 26  

    Po zmianie kodu dalej jest tako samo jak było.

    0
  • #9 18 Cze 2012 16:07
    30402
    Użytkownik usunął konto  
  • #10 18 Cze 2012 16:28
    henryxxl
    Poziom 26  

    Zrobiłem tak jak kolega napisał i led rozjaśnia się bardzo powlo i na tym program stoi.
    Bascom stroboskop led źle działa switch.

    0
  • Pomocny post
    #11 18 Cze 2012 18:19
    30402
    Użytkownik usunął konto