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

[atmega32][DS18B20] - [BASCUM] 1wread wpisuje do zmiennej z innego podprogramu

tomy031 28 Wrz 2012 17:39 861 2
REKLAMA
  • #1 11357477
    tomy031
    Poziom 9  
    Witam
    Proszę o wyjaśnienie działania fragmentu kodu mierzącego temperaturę na DS18B20 gdyż linia Bd(1) = 1wread(9 , Pind , 6) wpisuje wartości do zmiennej której używam do mierzenia temperatury na drugim czujniku. Czemu przypisuje wartość do zmiennej która nie występuje w tym podprogramie ???

    Bd(1) = 1wread(9 , Pind , 6) Po tej lini zmienna "Tb" przyjmuje wartości: 216, 96, 512 itp. "Tb" jest używana w drugim podprogramie mierzącym temperaturę z drugiego DS18B20

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 11358374
    jousto
    Poziom 17  
    A po co ty czytasz 9 bajtów z rejestru jak tylko dwa pierwsze do czegoś używasz?

    Nie podajesz fragmentu deklaracji zmiennych nie wiadomo ile zadeklarowałeś dla Bd()

    A poza tym co to za konstrukcja podprogramu?
    Ds18b20:

    Select Case Ds
    Case 0 :
    instrukcje.....

    i potem znowu.
    Ds18b20:

    Select Case Ds
    Case 0 :
    instrukcje.....

    a gdzie koniec Select Case? i gdzie powrót z podprogramu.
  • #3 11359194
    tomy031
    Poziom 9  
    Sprawa wyjaśniona. Zakradł się błąd Bd miałem zadeklarowane na 2 miejsca a czytałem 9 bajtów a powinienem czytać pierwsze 2.
    Temperaturę czytam w Case 0 i Case 1 z dwóch czujników fragment zapodałem tylko Case 0 dla pierwszego czujnika w którym był błąd.

    Dzięki jousto
REKLAMA