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] Wyświetlenie tekstu na lcd bez Wait

zimzia@ 07 Sty 2012 22:13 2008 18
REKLAMA
  • #1 10364552
    zimzia@
    Poziom 12  
    hej nie mogę sobie poradzić z wyświetleniem Daty na lcd bez użycia Wait, dlatego zwracam się o pomoc do Was. Chodzi mi o coś działającego w tym stylu, gdy jestem na Ekranie_1 i nacisnę OK wyświetli mi się data na kilka sekund.

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 10364735
    opamp
    Użytkownik obserwowany
    Nie próbowałeś dać Timer0 ? Szkoda trochę go ale można.
  • #3 10364787
    zimzia@
    Poziom 12  
    T0 i T1 mam już zajęte, to nie jest całość programu. Zostaje pokombinować coś z T2 albo jakimiś zmiennymi ale nić mi nie przychodzi do głowy.
  • #4 10364827
    opamp
    Użytkownik obserwowany
    Wait działają na rejestrach r30 r31 + DJNZ pętla jak pamiętam. A jaki cel chcesz osiągnąć?
  • #5 10364866
    zimzia@
    Poziom 12  
    Żeby mi się wyświetliła np: Godzina na kilka sekund po wciśnięciu przycisku.
  • REKLAMA
  • #6 10364877
    opamp
    Użytkownik obserwowany
    Zegar masz na timerach czy zewnętrzny?
  • #7 10364880
    zimzia@
    Poziom 12  
    Zegar jest zewnętrzny
  • #8 10364896
    opamp
    Użytkownik obserwowany
    To czemu nie waity?
  • REKLAMA
  • #9 10364920
    zimzia@
    Poziom 12  
    Bo timer0 liczy mi impulsy jak zatrzymam watem to pogubi mi impulsy. Tak jest czy się mylę ?
  • #10 10364938
    opamp
    Użytkownik obserwowany
    Zawsze myślałem że timer pracuje nie zależnie od ALU a tu nowość dla mnie :P
  • #11 10364967
    zimzia@
    Poziom 12  
    Czyli mogę użyć waita ?, bo już się pogubiłem.
  • #13 10365065
    zimzia@
    Poziom 12  
    Zastosowałem Wait ale teraz jest taki dziwny efekt podczas gdy wyświetla mi ilość impulsów wcisnę przycisk aby zobaczyć godzinę po 2s przeskoczy na ekran1 to na wyświetlaczu ilość impulsy strasznie szybko narasta naliczy tyle impulsów które przybyły w czasie 2s i leci dalej normalnie.
  • #14 10365082
    opamp
    Użytkownik obserwowany
    Daj cały program + schemat.
  • REKLAMA
  • #15 10366136
    zimzia@
    Poziom 12  
    Schematu nie mam najpierw testuje program. Ale nic nadzwyczajnego nie ma, na wejście T0 podawany jest sygnał,T0 skonfigurowane jako Counter co widać w programie.
  • #16 10371815
    arktik1
    Poziom 27  
    Nie trzeba stosować TIMERów.
    Można zrobić też tak:
    
    
    Wysw_ekran:
    do
    incr czaswyswietlania
    
    If Wyswietlanie = 1 Then
    '--------------Ekran 1--------------------------------------
       If Poz_ekran = 1 Then
          'Cls
          Locate 1 , 1
          Lcd "11 aaaaaa"
       End If
    '--------------Ekran 5--------------------------------------
       If Poz_ekran = 5 Then
          'Cls
          Locate 1 , 1
          Lcd "55 eeeeee"
       End If
    '-----------------------------------------------------------
    End If
    
    waitms 100
    
    loop until czaswyswietlania = 50
    czaswyswietlania  = 0
    Return
    


    Tu będzie czas ok 5sekund
  • #17 10371928
    zimzia@
    Poziom 12  
    arktik1 napisał:
    Nie trzeba stosować TIMERów.
    Można zrobić też tak:
    
    
    Wysw_ekran:
    do
    incr czaswyswietlania
    
    If Wyswietlanie = 1 Then
    '--------------Ekran 1--------------------------------------
       If Poz_ekran = 1 Then
          'Cls
          Locate 1 , 1
          Lcd "11 aaaaaa"
       End If
    '--------------Ekran 5--------------------------------------
       If Poz_ekran = 5 Then
          'Cls
          Locate 1 , 1
          Lcd "55 eeeeee"
       End If
    '-----------------------------------------------------------
    End If
    
    waitms 100
    
    loop until czaswyswietlania = 50
    czaswyswietlania  = 0
    Return
    


    Tu będzie czas ok 5sekund


    Pomysł dobry tylko jeśli w pętli głównej liczę impulsy co 1s a wejdę do pętli wyświetlania daty to przestaje mi zliczać i zaczyna dopiero po wyskoczy z tej pętli.
  • Pomocny post
    #18 10373872
    arktik1
    Poziom 27  
    To przenieś to do pętli głównej i inaczej "podłącz" zmienną.
    np:
    
    do
    
    if coś tam then czaswyswietlania =1
    
    if czaswyswietlania > 0 then 
    incr czaswyswietlania
    
    If Wyswietlanie = 1 Then
    '--------------Ekran 1--------------------------------------
       If Poz_ekran = 1 Then
          'Cls
          Locate 1 , 1
          Lcd "11 aaaaaa"
       End If
    '--------------Ekran 5--------------------------------------
       If Poz_ekran = 5 Then
          'Cls
          Locate 1 , 1
          Lcd "55 eeeeee"
       End If
    '-----------------------------------------------------------
    End If
    if czaswyswietlania >= 50 then czaswyswietlania = 0
    endif
    
    waitms 100
    
    loop 
    
  • #19 10374458
    zimzia@
    Poziom 12  
    Mniej więcej dział Dzięki :)
REKLAMA