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

Atmega 16. Zwiększanie zmiennej. Zapis temperatury.

scal12 11 Maj 2007 19:07 1765 6
  • #1 3874127
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 53
    witam wszystkich na forum i na wstepie pozdrawiam,mam dwa problemy może ktoś z Was ma gotowy programik który odmierz i zwiększa jakąś tam zmienna co 1S korzystając z Timera1,a drugi to taki że nie wiem w jaki sposób zrealizować zapis temperatury minimalnej zarejestrowanej przez czujnik DS1820,z tem max nie mam problemu robie to tak:If Tmax < T1 Then Tmax = T1 ,ale z min już to mi nie wychodzi.Bardzo dziękuje wszystkim za odpowiedzi i jeszcze raz pozdrawiam[/u]
  • Pomocny post
    #2 3874327
    Sylwa1
    Poziom 12  
    Posty: 27
    Pomógł: 1
    ad 1:Podaj F rezonatora
    np. 8mhz
    config timer1 = timer,prescale 256 'konfiguracja timera
    load timer1 , 31250 'załadowanie timera 1s
    on timer1 odliczanie 'określenie która procedura ma byc wykonana co 1s
    enable interrupts 'właczenie przerwań
    enable timer1 'właczenie timera1
    dim twoja_zmienna as long
    ' twoja pętla
    do
    "jakis tam twój program"
    loop

    odliczanie:
    load timer1 , 31250
    incr twoja_zmienna 'podnoszenie wartości twojej zmiennej o 1
    return 'powrót do pętli

    ad2: Musisz ustalic jakąs wartośc początkową np 1000st +/-
    dim Tmax as integer
    dim Tmin as integer

    Tmax = -1000 'dla tmax minimalny zakres
    Tmin = 1000 ' dla tmin maksymalny zakres

    do
    If Tmax < T1 Then Tmax = T1
    if T1<Tmin then Tmin = T1
    loop
    Powinno chodzić , jak nie to GG2019371
  • #3 3874398
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 53
    Dziękuje za odpowiedz i zabieram sie do pracy:)
  • #4 3877628
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 53
    Witam ponownie,z odmierzaniem 1s sobie poradziłem ale z zapisem temp.minimalnej mam problem na lcd temp.min wyswietla mi zero,chce zrobic cos takiego właczam termometr: pokazuje temp 25C i w tym momencie ma pokazac temp max 25C i tak sie dzieje i min. tez ma pokazac 25C i tu problem nie pokazuje,podgrzewam czujnik do 30C zapisuje max jako 30C a min powinna być 25C,chłodze czujnik do tem.20C i max pokazuje 30C a min powinien pokazać 20C ale nie pokazuje i nie wiem jak to rozwiązac zapis minimalnej z maxymalno nie ma problemu.Dziękuje za konkretny przykład i pozdrawiam.
  • Pomocny post
    #5 3879419
    witold16
    Poziom 13  
    Posty: 112
    Pomógł: 4
    Ocena: 1
    Spróbuj tego:
    
    Tmin = 125 *16
    Tmax = -55 *16
    
    If T < Tmin Then Tmin = T
    If T > Tmax Then Tmax = T
    
    Lcd Tmax
    Lowerline
    Lcd Tmin 
    
    
  • #6 3879691
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 53
    Dziekuje za podpowiedzi zapis tmin juz działa, żle deklarowałem na poczatku temperature minimalna.
  • #7 10179578
    enterrupter
    Poziom 12  
    Posty: 62
    Pomógł: 5
    Ocena: 1
    Witaj mam pytanie jaką wartość trzeba wpisać żeby temperatura wskazywana była po przecinku

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy implementacji w mikrokontrolerze Atmega16 dwóch funkcji: odmierzania czasu co 1 sekundę za pomocą Timera1 oraz zapisu temperatury minimalnej i maksymalnej odczytanej z czujnika DS1820. W pierwszym problemie zaproponowano konfigurację Timera1 z preskalerem 256 i załadowaniem wartości 31250, co odpowiada odliczaniu 1 sekundy przy rezonatorze 8 MHz, oraz inkrementację zmiennej w przerwaniu timera. W drugim problemie rozwiązano kwestię zapisu temperatury minimalnej przez inicjalizację zmiennych Tmin i Tmax odpowiednio do zakresu pomiarowego (np. Tmin = 125*16, Tmax = -55*16) i aktualizację wartości minimalnej, gdy odczytana temperatura jest niższa od Tmin. Poprawna deklaracja i inicjalizacja zmiennych okazała się kluczowa dla prawidłowego wyświetlania temperatury minimalnej na LCD. Dyskusja zawiera także pytanie o wyświetlanie temperatury z dokładnością do części dziesiętnych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA