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] Zegar, przetwornik A/C i 18B20

Mody 06 Cze 2008 18:19 4241 5
REKLAMA
  • #1 5220077
    Mody
    Poziom 25  
    Korzystając z materiałów z sieci, help'a z bascoma avr i własnych przemyśleń
    napisałem prosty program. Jest to zegar z pomiarem temperatury na 18B20
    oraz pomiarem napięcia za pomocą wewnętrznego przetwornika A/C.
    wszystkie procedury osobno działają dobrze ale razem nie bardzo.
    Pod tym linkiem jest kod programu.
  • REKLAMA
  • #2 5220192
    dawid512
    Poziom 32  
    Podaj dokładnie co się dzieje. Masz problem z zegarem, temperaturą czy z przetwornikiem?
  • REKLAMA
  • #3 5220225
    Mody
    Poziom 25  
    Głównie problem jest z zegarem. Im większe napięcie jest
    podawane na wejście przetwornika zegar się zatrzymuje,
    obniżenie napięcia powoduje ponowne działanie. Myślę, że
    pomyliłem się przy łączeniu tych wszystkich procedur tylko
    nie wiem gdzie.
  • REKLAMA
  • #4 5220944
    dawid512
    Poziom 32  
    Spróbuj wyłączyć przerwania na czas pomiaru przetwornika a nastepnie je wlaczyć po pomiarze. To i tak dobrze że masz odczyt z DS-a poprawny.
  • REKLAMA
  • #5 5221861
    Mody
    Poziom 25  
    Na początku procedury przetwornika dodałem Disable
    Interrupts, a na końcu Enable Interrupts jednak nic to nie
    zmienia dalej zegar się zatrzymuje.
  • #6 5221949
    dawid512
    Poziom 32  
    Zmień:
    Gosub = Sectic
    Na:
    call = Sectic
    a także zadeklaruj sobie zmienną "flaga" jako bit i resetuj ją na końcu podprogramu "Sectic". Następnie przed odczytem z przetwornika umieść:
    Set Flaga : While Flaga = 1 : Wend 
    . Próbuj doświadczalnie umieszczać ten kod tam gdzie masz odczyt z przetwornika. Dzięki temu kod umieszczony poniżej zacznie się wykonywać dopiero po tym jak zakończy się przerwanie.
REKLAMA