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

Błąd kompilacji Storebit error [200] w Bascom AVR - jak go naprawić?

propropro 08 Lis 2011 19:57 2384 6
REKLAMA
  • #1 10117339
    propropro
    Poziom 10  
    Posty: 21
    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  
    Posty: 107
    Pomógł: 22
    Ocena: 12
    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  
    Posty: 21
    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.
  • REKLAMA
  • #4 10117507
    kiziu13
    Poziom 17  
    Posty: 107
    Pomógł: 22
    Ocena: 12
    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  
    Posty: 21
    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  
    Posty: 107
    Pomógł: 22
    Ocena: 12
    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.
  • #7 10117751
    propropro
    Poziom 10  
    Posty: 21
    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.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zgłosił problem z błędem kompilacji "Storebit error [200]" w kodzie napisanym w Bascom AVR, związanym z wywołaniem funkcji Xyz. W odpowiedziach zasugerowano, że problem może wynikać z nieprawidłowego wywołania funkcji oraz z użycia niezainicjowanych zmiennych. Po kilku próbach i modyfikacjach kodu, w tym zmianie typu zmiennych z BIT na WORD, użytkownik odkrył, że funkcja nie może zwracać wartości typu BIT, co prowadziło do błędu. Ostatecznie, po zamianie typów zmiennych, kod skompilował się poprawnie.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA