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

[BASCOM] Licznik 0-9, regulowanie prędkości odliczania

misiek85_1 14 Lis 2009 23:03 1428 6
REKLAMA
  • #1 7261565
    misiek85_1
    Poziom 11  
    Witam,

    tworzę sobie mały licznik w Bascomie, wszystko ładnie mi już odlicza, proszę tylko o małą poradę - w jaki sposób za pomocą dwóch przycisków (+ i -) regulować szybkością odliczania liczby?

    Teraz posługiwałem się
    
    Do
    For Licznik = 0 To 9
    Print Licznik
    Waitms 500
    Next
    Loop
    


    teraz jak wykonać regulowanie czasu przerwy - czyli prędkości odliczania? Załóżmy, że w przedziale 1-10?

    Myślałem żeby do tego jakoś Timer zaprząc, ale za bardzo nie wiem jak..

    Z góry dziękuje za pomoc :)
  • REKLAMA
  • #2 7261610
    ziomus90210
    Poziom 35  
    Wprowadź zmienną A zapisaną gdzieś :)
    i niech będzie :
    WAITMS A
    a zmienna zmieniaj :)
    kombinuj:)
  • REKLAMA
  • #3 7261646
    misiek85_1
    Poziom 11  
    Już z tym też kombinowałem, ale nie wydaje mi się by było to "fachowe" rozwiązanie..
  • REKLAMA
  • #4 7262119
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #5 7263915
    Electrik_eye
    Poziom 13  
    Zgadzam się z kolegą.
    Używanie polecenia wait to tak jakbyś strzelał z działa przeciwpancernego do muchy...

    Przykładowe skonfigurowanie licznika 16-bitowego w BASCOM tak żeby zliczał do 1s przy częstotliwości taktowania 16MHz:
    ( wszystkie ustawienia konfiguracyjne oraz deklaracja zmiennych )

    Config Timer1 = Timer , Prescale = 256 ' konfiguracja licznika jako licznik i 'ustawienie prescalera na 256 ( w przypadku taktowania 4 MHz byłoby to '64 itp.)

    Enable Interrupts
    Enable Timer1 ' odblokuj timer
    On Timer1 Co1s ' po przepełnieniu licznika przejdź do etykiety co1s

    do:loop:end


    Co1s:

    Timer1 = 3036
    ( i dalsza część programu )

    Dodano po 2 [minuty]:

    No a z zwiększaniem szybkości to np. if Pinb.0 = 0 (przykładowe polecenie jeśli przysisk naciśnięty ( oczywiście wymyśliłem, że portb.0 to wyjście i właśnie tam jest przycisk podłączony i , że zwiera on końcówkę do masy)
    then
    Timer = 5256

    itd.
  • #6 7264742
    Konto nie istnieje
    Poziom 1  
  • #7 7267702
    Electrik_eye
    Poziom 13  
    Co racja to racja :) Heh...

    Dzięki za sprostowanie :)

    Pozdrawiam

    Electrik_eye
REKLAMA