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][Atmega32] - "Config KBD" a praca timerów.

werewolf15 28 Sie 2012 11:43 1407 10
  • #1 28 Sie 2012 11:43
    werewolf15
    Poziom 14  

    Zamierzam w swoim projekcie wykorzystać funkcję "config KBD" gdyż będę potrzebował użycia dużej liczby przycisków do obsługi at32.
    Proszę o podpowiedź czy praca takiej funkcji, a szczególnie "debounce" i "delay" w niej zawarte nie zatrzymają timerów pracujących cały czas w przerwaniu.
    Z góry dziękuję za pomoc.

    0 10
  • #2 28 Sie 2012 12:16
    tehaceole

    Poziom 28  

    werewolf15 napisał:
    "debounce" i "delay"
    A cóż to za magiczna funkcja "Config KBD"? Wszystko zależy od tego jak skonstruowane są bloki debounce. Jeżeli na zwykłych delay to leżysz. Jeżeli na timerach programowych - nie musisz się o nic obawiać.

    Niestety jest to tylko i wyłącznie gdybanie - nie zaprezentowałeś choćby odrobiny kodu, nie wiadomo jak podchodzisz do programowania. Stąd może się okazać, że funkcję "Config KBD" obwinisz za błąd mogący leżeć w zupełnie innej części programu.

    Swoją drogą... Tak właśnie sobie uświadamiam pisząc te słowa - w jakim języku piszesz program? :)

    0
  • #3 28 Sie 2012 12:42
    werewolf15
    Poziom 14  

    Programu jeszcze nie napisałem ale będę pisać w bascomie.Pytam się tak trochę zapobiegawczo żeby się upewnić że ta funkcja nie będzie mi przerywać czy blokować timerów.

    0
  • #4 28 Sie 2012 16:01
    werewolf15
    Poziom 14  

    A może ktoś jeszcze miał przygodę z klawiaturami matrycowymi i "config KBD" ?

    ...
    Nobo jeśli "debounce" i/lub "delay" zatrzymując program działa tak jak "wait" zatrzymując również timer to będę musiał szukać innego sposobu na klawiaturę wieloprzyciskową.

    0
  • #5 28 Sie 2012 16:13
    mirekk36
    Poziom 42  

    werewolf15 napisał:
    ...
    Nobo jeśli "debounce" i/lub "delay" zatrzymując program działa tak jak "wait" zatrzymując również timer to będę musiał szukać innego sposobu na klawiaturę wieloprzyciskową.


    Tak się składa że nawet w Bascomie wait czy waitms nigdy nie zatrzymywał, nie zatrzymuje i powiem więcej nie będzie zatrzymywał timera i to żadnego. Nie ma takiej możliwości. Więc zobacz jak bardzo mieszasz wszystkie terminy :(

    Może warto zacząć od jakiejś książki ? Jeśli Bascom - to masz dobrą książkę Marcina Wiązani do tego - wtedy sporo ci się wyjaśni i nie będziesz się domyślał takich rzeczy.

    0
  • #6 28 Sie 2012 16:43
    werewolf15
    Poziom 14  

    Kiedyś na tym forum na pytanie dla czego spóźnia mi się sekundnik z timera otrzymałem odpowiedź że w bascomie każdorazowe użycie "wait" używa jednego timera, a co za tym idzie blokuje inne.Ktoś mi wtedy polecił zmianę instrukcji "wait" na pętlę zakańczaną przepełnieniem zmiennej z przerwania timera którego używam.Tak więc z własnego doświadczenia znam ten fakt i od tamtej pory w ogule nie stosuję waitów w większych projektach.

    0
  • #7 28 Sie 2012 16:53
    mirekk36
    Poziom 42  

    werewolf15 napisał:
    Kiedyś na tym forum na pytanie dla czego spóźnia mi się sekundnik z timera otrzymałem odpowiedź że w bascomie każdorazowe użycie "wait" używa jednego timera, a co za tym idzie blokuje inne.Ktoś mi wtedy polecił zmianę instrukcji "wait" na pętlę zakańczaną przepełnieniem zmiennej z przerwania timera którego używam.Tak więc z własnego doświadczenia znam ten fakt i od tamtej pory w ogule nie stosuję waitów w większych projektach.


    O Matko z postu na post coraz gorzej .... czy możesz chociaż raz, jeden raz - proszę sięgnąć chociażby do HELPA Bascoma (znajdziesz przecież nawet taki po polsku) .... żeby zobaczyć że to co gdzieś tam przeczytałeś że użycie "wait" używa jednego timera - to jakaś banialuka z kosmosu. A ty nie dość tego przyjmujesz to za pewnik nie zaglądając do źródła (helpa czy dokumentacji Bascoma) i piszesz że teraz to jesteś przekonany bo skoro przeczytałeś o tym na forum to już masz własne doświadczenie.

    A nie przyszło ci do głowy, że ktoś kto to pisał także mógł nic albo mało wiedzieć na ten temat. Albo jeszcze lepiej - może on pisał całkiem inaczej a ty to źle zintepretowałeś albo przeczytałeś albo odebrałeś ....

    No na prawdę - to że "wait" w Bascomie używa jednego timera - to chyba powinno przejść do historii - "wspaniałych" pomysłów z forum. Tylko proszę nie brnij dalej - po prostu zajrzyj do helpa po polsku i dowiedz się w końcu o co chodzi. Tym bardziej, że pomyśl sobie za kilka miesięcy trafi na elektrodę podobnie nowy użytkownik jak ty - jakiś "werwolf2" .... przeczyta tutaj to coś ty napisał - i będzie święcie przekonany że tak jest na prawdę - no nie ? zamiast też sięgnąć do źródła.

    0
  • #8 28 Sie 2012 17:10
    Electix
    Poziom 20  

    Heh,

    mirekk36 napisał:
    proszę sięgnąć chociażby do HELPA Bascoma (znajdziesz przecież nawet taki po polsku) ....


    Sugerowałem to rozwiązanie przy okazji postu o odtwarzaczu audio... :P

    Autor postu jest wyjątkowo oporny na czerpanie z innych źródeł ;)

    Dla ułatwienia Help do BASCOM AVR po Polsku - Tada!!!

    0
  • #9 28 Sie 2012 18:01
    werewolf15
    Poziom 14  

    W helpie bascoma nie znalazłem konkretnej odpowiedzi na moje pytanie.
    Odnośnie wait pisze tam tylko "Instrukcja wstrzymuje działanie programu na podaną ilość sekund. Odmierzany czas jest wartością przybliżoną, więc nie należy stosować tej instrukcji do dokładnego odmierzania czasu. Używanie przerwań, może znacznie wydłużyć działanie instrukcji."Osobiście myślałem że jak zatrzymuje działanie programu, a timer przecież wchodzi w jego skład, to zatrzymuje także ów timer.
    Więc chciałem zasięgnąć porady kogoś bardziej doświadczonego.
    Po drodze dziękuję za wytłumaczenie mi że wait nie zatrzymuje timera.
    Trochę mi się to wszystko pomieszało.
    Czy to znaczy że obsługa klawiatury matrycowej z instrukcją config KBD też niema wpływu na timery?

    0
  • #10 28 Sie 2012 18:44
    mirekk36
    Poziom 42  

    pewnie że nie ma wpływu na timery i musisz poczytać książki o samych prockach żeby zrozumieć co to są timery sprzętowe. Bo o ile można powiedzieć że program nie ma wpływu na timery sprzętowe to już timery sprzętowe a raczej ich przerwania mają wpływ na program i to się wiąże z tym działaniem niedokładnym twojego nieszczęsnego wait.....

    zatem obsługa klawiatury także nie ma wpływu na timery o ile sama nie jest napisana z udziałem przerwania timera. Ale to już będzie wynikać z dokumentacji....

    dlatego ja na razie pasuję, bo na wyrywki niczego się nie nauczysz - musisz zacząć od dobrej książki panie kochany. Jak się tego będziesz bał - to jeszcze długo tak się będziesz bawił w kotka i myszkę.

    0
  • #11 26 Paź 2012 13:58
    werewolf15
    Poziom 14  

    Problem rozwiązany, dziękuję za pomoc.

    0