logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[attiny13][bascom] - dodawanie i odejmowanie od licznika

airman 29 Lip 2013 21:52 2067 10
REKLAMA
  • #1 12574863
    airman
    Poziom 13  
    Witam, mam problem z nie do końca działającym programem, oto on:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Chciałbym aby program po 3 zwarciach do masy pinu b.1 załączył diodę na porcie b.2 i po kolejnych 3 zwarciach tego pinu dioda ma gasnąć jednocześnie resetując licznik do stanu 0. Problemem jest to, iż po 3 sygnałach dioda się zapala, natomiast później po kolejnych 3 nie gaśnie (cały czas świeci). Czy jest ktoś w stanie mi pomóc ?

    Z góry dziękuję za odpowiedź

    Pozdrawiam
  • REKLAMA
  • REKLAMA
  • #3 12574926
    morswin89
    Poziom 23  
    W twoim kodzie żeby 2 i 3 warunek został w ogóle sprawdzony musi być cały czas wciśnięty przycisk, zrób porządna obsługę przycisku a dopiero reszte.

    Być może po tej modyfikacji kod zadziała według twoich założeń:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #4 12574939
    airman
    Poziom 13  
    Dziękuję za szybką odpowiedz, oczywiście była to wina if'ów za co serdecznie dziękuję olelek klikam pomógł. Teraz mam jeszcze jedno pytanie a mianowicie jak najlepiej napisać kod, który zliczałby impulsy w czasie np 2 sekund, jeśli po odliczeniu tego czasu licznik wyniesie L = 3 to dioda się uruchamia, i dokładnie w drugą stronę, kolejne 3 sygnały w ciągu 2 sekund wyłączają diodę. Przepraszam, że dopytuje, ale jeśli już ktoś kompetentny odpisuje to korzystam :)

    edit:

    zapomniałem dodać, że pb.1 jest podciągnięty rezystorem do +5v i zwierany tranzystorem do masy przez sygnał z czujnika

    morswin89 Twój kod "szaleje" dioda się włącza kiedy chce, czasem po 1 sygnale a czasem po kilku
  • REKLAMA
  • #5 12574957
    olelek
    Poziom 24  
    Kolego, zacznij pisać programy poprawnie, bo na głupie odczytanie przycisku zużywasz pełną moc procesora, o poborze prądu nie wspominając. Wykorzystaj Timery, przerwania zewnętrzne i usypianie procesora, i pochwal się jak program działa. Wszyscy skorzystają, Ty najbardziej.
  • #6 12582609
    SylwekK
    Poziom 32  
    airman napisał:
    ... Teraz mam jeszcze jedno pytanie a mianowicie jak najlepiej napisać kod, który zliczałby impulsy w czasie np 2 sekund...


    Do tego niezbędne będą przerwania i mierzenie czasu od pierwszego kliku przyciskiem. Jeśli ilość klików będzie właściwa zanim timer doliczy 2s to wtedy dopiero ma być zezwolenie na wykonanie jakiejś operacji związanej z tym klikaniem. Jeśli timer doliczy zanim wykonane będą kliki to wtedy należy wyzerować licznik klików i wszystko zaczyna się od początku...
  • #7 12592452
    airman
    Poziom 13  
    Witam ponownie, oto on, poprawiony, jednak dalej w kulawej formie:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    może ktoś da mi jakąś wskazówkę ?

    chciałbym aby po naliczeniu 3 przerwań w ciągu dwóch sekund został zmieniony stan wyjscia Portb.2

    wiem, że najprawdopodobniej popełniam wiele błędów jednak liczę na pomoc z waszej strony.

    Z góry dziękuję
  • #8 12592697
    yokoon
    Poziom 29  
    Witam.

    Czy taktowanie ATtiny odbywa się przez rezonator kwarcowy zewnętrzny ?
  • #9 12592966
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #10 12593497
    yokoon
    Poziom 29  
    atom1477 napisał:
    yokoon napisał:
    Czy taktowanie ATtiny odbywa się przez rezonator kwarcowy zewnętrzny ?

    Na pewno nie, bo jest to niemożliwe.


    Tak, to prawda rezonatora zewnętrznego nie można podpiąć. Ale na pin nr 2 można podać External Clock. Tak jest w nocie katalogowej.

    Zapytałem dlatego bo domyślnie jest ustawiony na 9,6MHz i Fuse bit CKDIV8, czyli pracuje na 1,2 MHz.
    Tak podaje AVR Fuse Calculator.
  • #11 12593595
    SylwekK
    Poziom 32  
    @airman, bój się Ty Boga... Weź na warsztat i przeanalizuj jeden z moich bardzo prostych programików to może nieco Ci się rozjaśni na temat przerwań, liczników, klawiszy, itp... :
    Minutnik na Attiny 13
REKLAMA