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

[ATmega8][BASCOM] DS1820 opóźnia działanie programu

KD93 20 Lut 2009 17:27 1683 2
REKLAMA
  • #1 6179085
    KD93
    Poziom 12  
    Witam i jak zwykle proszę o pomoc.

    Otóż piszę program do sterownika wytrawiarki, zrobiłem Menu (hehe, 50% flasha), i potrzebuję zrobić termostat z czujnikiem temperatury, a wybrałem sobie DS1820, bo łatwodostępny i pospolity.

    Problem mam taki, że w programie głównym wyświetlam tą temperaturę, (przechodzę do podprogramu), a czas odczytu wynosi 750ms, przez tyle program nie reaguje na naciśnięcie przycisku przenoszącego do menu.

    Jak temu zapobiec? Można mierzyć tą temperaturę jakoś "w tle", albo przerwać pomiar, gdy nacisnę przycisk?
  • REKLAMA
  • Pomocny post
    #2 6179147
    BTomasz92
    Poziom 16  
    Witam.

    Najpierw wysyłasz rozkaz pomiaru temperatury, później z pomocą timera lub nawet zmiennej zwiększanej w pętli odliczasz czas pomiaru lub większy (mikroprocesor w międzyczasie normalnie wykonuje program). Po tym odczytujesz wynik pomiaru z DS1820, co nie trwa zbyt długo.

    Pozdrawiam.

    EDIT: Uzupełniłem posta
  • #3 6179221
    KD93
    Poziom 12  
    Acha, sprytne, zwiększając zmienną będę mógł przerwać tę procedurę, nit tak jak w przypadku Waitms... Chyba że źle myślę.

    Super, działa. Zrobiłem zmienną Integer i zliczam w pętli Do...Loop od 1 do 750 co 1ms, a jak przycisk jest naciśnięty, to wychodzę z pętli.
REKLAMA