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

89S52 / Bascom - jak przełączać wyświetlanie temperatury na LCD?

siemka 21 Sie 2005 23:30 1206 3
REKLAMA
  • #1 1753494
    siemka
    Poziom 12  
    Posty: 29
    Pomógł: 1
    Ocena: 16
    odczytuję temperaturę z dwóch ds18B20, zapisuję do oddzielnych zmiennych i wybieram dwoma klawiszami która z nich ma byc wyświetlona
    i tu pojawia sie problem: temperatury zostaja zmienione na lcd ale tylko raz, znaczy sie gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia sie "live" tylko wtedy gdy trzymam przycisk cały czas. jak zrobić by po jednokrotnym naciśnięciu nastąpiło przełączenie na wyświetlanie "live" wybranej temperatury?
    procesor to 89S52, program pod Bascom`em, guziki zwierają do masy, algorytm wygląda mniej więcej tak:

    set p2

    jazda:

    if p2.6 = 0 then wyświetlana = first
    if p2.4 = 0 then wyświetlana = second

    odczytaj z ds`a first
    odczytaj z ds`a second

    lcd wyświetlana

    goto jazda:

    wskażcie proszę właściwszy tok rozumowania.
  • REKLAMA
  • Pomocny post
    #2 1753601
    desa
    Poziom 14  
    Posty: 83
    Pomógł: 8
    ja zrobil bym cs takeigo:

    Dim X As Byte
    set p2

    jazda:

    if p2.6 = 0 then set X
    if p2.4 = 0 then reset X

    if x = 1 then wyświetlana = first
    if x = 0 then wyświetlana = second


    odczytaj z ds`a first
    odczytaj z ds`a second

    lcd wyświetlana

    goto jazda:

    Mam nadzieje ze pomoże to co zmieniłem zaznaczyłem. Sprawdz. jak i napisz jaki bedze rezultat
  • REKLAMA
  • Pomocny post
    #3 1753720
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Witaj napisał:
    temperatury zostaja zmienione na lcd ale tylko raz, znaczy się gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia się "live" tylko wtedy gdy trzymam przycisk cały czas.
    Program działa dokładnie tak jak go napisałeś, w momencie kiedy naciskasz przycisk wartość odczytana jest przepisywana do zmiennej która jest wyświetlana w pętli, a potem temperatura jest odczytywana do obu zmiennych, ale tylko wartość przypisana do zmiennej wyświetlana jest wyświetlana na lcd. Podane wyżej rozwiązanie jest prawidłowe, ale ja bym to zrobił tak:
    Dim X As Byte
    set p2
    jazda:
    if p2.6 = 0 then set X
    if p2.4 = 0 then reset X
    if x = 1 then lcd first
    if x = 0 then lcd second
    odczytaj z ds`a first
    odczytaj z ds`a second
    goto jazda: 
  • #4 1753998
    siemka
    Poziom 12  
    Posty: 29
    Pomógł: 1
    Ocena: 16
    DZIAŁA!!! hurraaa wreszcie działa, działa i jeden i drugi, dziękuję po tysiąckroć.
REKLAMA