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

[ATMEGA16]+BASCOM+DS18B20 - Zamiana Waitms 750 na Timer

Retran 24 Gru 2012 04:45 2085 2
REKLAMA
  • #1 11690600
    Retran
    Poziom 10  
    Witam wszystkich!
    Pewnie pomyślicie "znowu to samo", no ale zlitujcie się w Wigilię i przeczytajcie te kilka zdań :D

    Walczę z problemem od kilku dni. Nie potrafię skonfigurować Timera by konwertował dane z 1wire poza główną pętlą. Nie mogę sobie pozwolić na waitms, bo wtedy mam problemy z poruszaniem się w menu. Mam już działający Timer1 odliczający sekundę (dokładności nie sprawdzałem, ale na oko i z wyliczeń jest ok) i wyświetlający czas. Trzeba jakimś cudem przenieść coś do funkcji Timera, żeby "odmulić" podprogram Temperatura. Kombinowałem z przeniesieniem już 1wreset, 1wwrite &HCC i 1wwrite &H44, ale w większości przypadków wskazywana temperatura z obu czujników była równa 0 lub zaraz po wejściu do programu było ok, ale po sekundzie znów się zerowała.

    W załączniku mój uproszczony kod. Wyrzuciłem inne podprogramy i nie sprawdzałem "wersji okrojonej", więc za inne błędy przepraszam - wszystko w fazie testów i dopracowywania jest jeszcze :D . To mój pierwszy taki projekt i proszę o wyrozumiałość. Każda wskazówka się przyda. Nawet te w stylu "Poczytaj to i to" :)

    Pozdrawiam i Wesołych Świąt życzę ;)

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 11690706
    alien_audio
    Poziom 21  
    Witam.
    Może spróbuj tak po wywołaniu przerwania ( u Ciebie co sekunda)
    Odczytaj termometr DS. A następnie wydaj rozkaz pomiaru temperatury.
    W następnym przerwaniu odczytasz go o tak w kółko.
  • #3 11692004
    Retran
    Poziom 10  
    heheh, już tak miałem wcześniej, ale przeniosłem ponownie tak ja mi napisałeś alien_audio i zastanawiałem się co mogłem popsuć, bo na logikę to po prostu MUSI działać :P Widać siedzenie do późna mi nie służy, bo... odliczanie sekundy trwało krócej, przez co 1wire nie zdążył konwertować, a już kolejne dane przychodziły do odczytu :P Tak to jest jak człowiek nie pomyśli o konsekwencjach a ustawia Timery i crystala inne niż miał na początku ;)

    Pozdrawiam, dzięki ;)
REKLAMA