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

[atmega644p][bascom] przekazywanie tablicy do funkcji

vein85 04 Lis 2011 21:33 1743 2
  • #1 10101927
    vein85
    Poziom 2  
    witam,

    Od razu do rzeczy. Jak w temacie! Program odczytuje po 1wire temperatury z 2 czujników. Wszystko działa poprawnie (płytka, czujniki dodam ds18b20). Kod programu poniżej.
    Kod: text
    Zaloguj się, aby zobaczyć kod

    plik ds18b20_commands.bas
    Kod: text
    Zaloguj się, aby zobaczyć kod

    plik id_czujnikow.bas
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Błędy wyrzucone przez kompilator:
    
    Error : 261  Line : 39 Array expected [ID1]
    Error : 261  Line : 43 Array expected [ID2]
    Error : 124  Line : 43 LOOP expected
    

    ostatnim errorem się nie przejmuje, zniknie jak uporam się z tymi typami.
    próbowałem już na różne sposoby ale żaden nie przyniósł spodziewanego efektu.

    rzućcie okiem i czekam na propozycje rozwiązania problemu :)

    //edytowałem bo dorzuciłem dwa includy
  • #2 10102341
    Mundi1970
    Poziom 24  
    Źle przekazujesz Id do funkcji, mały przykład do uruchomienia w symulatorze:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 10102489
    vein85
    Poziom 2  
    Próbowałem przekazywać tablice po pierwszej zmiennej, tak jak wyżej, ale cały czas przekazywałem przez wartość. Zadziałało dopiero jak przekazałem przez referencje (zresztą tak jak wyżej :) ). I tutaj mam kilka pytań.

    1. Dlaczego?? Przecież chodziło jedynie o identyfikatory (wartości) poszczególnych czujników.
    2. Po co przekazywać przez referencje zmienne z których tylko czytamy?? mam doświadczenie z innych języków i zawsze kiedy sytuacja była podobna wystarczyło przekazać wartość.

    Dodam tylko ze przekazywanie przez wartość było zawsze bezpieczniejsze (z oczywistych względów), doświadczenie z poprzednich języków.
REKLAMA