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

Bascom AVR, Storebit error [200]

propropro 08 Lis 2011 19:57 2330 6
REKLAMA
  • #1 10117339
    propropro
    Poziom 10  
    Witam wszystkich serdecznie. Ponieważ wygoglować rozwiązania problemu nie mogę, zwracam się z uprzejmą prośbą do bardziej doświadczonych kolegów z pytaniem: dlaczego próba kompilacji poniższego kodu kończy się błędem "Storebit error [200]" ze wskazaniem na linię: Wysw = Xyz(byval X , Byval Y)?
    Za ew. pomoc w rozwiązaniu problemu z góry dziękuję.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10117414
    kiziu13
    Poziom 17  
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Chyba kapkę inaczej się wywołuje funkcje (bez ByVal). Poza tym, gdzie masz zadeklarowane zmienne X i Y?
  • REKLAMA
  • #3 10117451
    propropro
    Poziom 10  
    Witam ponownie. Chyba nie w zmiennych x, y i wywołaniu z byval problem. Po sugerowanych zmianach:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    wciąż ten sam problem. Storebit error [200]. Problem w linii: Wysw = Xyz(x , Y), pierwsza po Do.
  • #4 10117507
    kiziu13
    Poziom 17  
    Nie pamiętam dokładnie, czy Bascom rozpoznaje wielkość liter, więc nadal w wywołaniu możesz mieć nieistniejącą zmienną. Dodatkowo używasz niezainicjalizowanych zmiennych X i Y. Sprawdź, czy po tym błąd wystąpi.
  • REKLAMA
  • #5 10117577
    propropro
    Poziom 10  
    Zmiennych w deklaracji i definicji funkcji (powtarzam za przykładami z helpa Bascoma) nie trzeba wcześniej definiować. Te które przekazuję w pętli do-loop, są wcześniej zainicjowane. Wciąż ten sam błąd storebit error [200]. Program oczywiście jest poglądowy ale do skompilowania w bascomie po dodaniu stosownych $ i config i po Ctrl-C / Ctrl-V.
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Wielkość liter jest zarządzana przez IDE.
  • #6 10117666
    kiziu13
    Poziom 17  
    Cytat:
    Zmiennych w deklaracji i definicji funkcji (powtarzam za przykładami z helpa Bascoma) nie trzeba wcześniej definiować.

    Masz racje w pewnym sensie, ale trzeba rozróżniać zmienne użyte w wywołaniu funkcji i reszcie programu, a zmienne lokalne dla funkcji. W poprzednim kodzie używałeś zmiennych, które nie były nigdzie zadeklarowane.

    Niestety na tym kończy się moja wiedza z Bascoma. Będziesz musiał poczekać na odpowiedź od kogoś bardziej ogarniętego.
  • REKLAMA
  • #7 10117751
    propropro
    Poziom 10  
    Upraszam kod i wciąż problem. Niemniej proszę spojrzeć: poniższy kod skutkuje błedem storebit error [200]

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Po zamianie typu zmiennych z BIT na WORD i minimalnych zmianach (zamiast Y = Not Y jest Y = Y + 1) kod kompiluje sie bez problemów.
    Czyżby nie było możliwe zwracanie przez funkcje typu BIT ? Może ktoś ma w tym zakresie doświadczenia.

    Poniższy kod kompiluje sie bez problemu.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Dodano po 7 [minuty]:

    Ok, problem rozwiązałem, może ktoś zaoszczędzi trochę czasu, po przeczytaniu tego co poniżej. Na podstawie "Programowanie mikrokontrolerów w języku Bascom" Autor: Marcin Wiązania:

    cyt.: "Tak samo jak dla procedur, zmienne typu Bit są zmiennymi globalnymi, których nie można umieszczać jako parametry funkcji".

    Na tej lekcji widać nie byłem, a szkoda. :=).
    Pozdrawiam wszystkich serdecznie.
    Temat zamykam.
REKLAMA