Skocz do zawartości
Markos

Problem programistyczny w Arduino.

Pomocna odpowiedź

Witam,
Pierwszy raz wiec proszę o wyrozumiałość.

A mianowicie.

-----

C:\Users\Marek\Documents\Arduino\samochod_IR_echo\samochod_IR_echo.ino: In function 'void loop()':

samochod_IR_echo:69: error: expression cannot be used as a function

prawo();

------

w void loop()chce się odwołać do funkcji prawo() i zwraca mi błąd.

Funkcja prawo() leży na końcu programu poza klamrami od loop-a.

Co robię źle?

Dziękuje za pomoc

Udostępnij ten post


Link to post
Share on other sites

Strzelam, że zapomniałeś średnika w poprzedniej linii. Ale tak jak kolega napisał, pokaż kod, bo tak to sobie możemy najwyżej powróżyć z fusów.

Udostępnij ten post


Link to post
Share on other sites

Ja strzelam, że funkcja prawo() musi być zadeklarowana przed jej wywołaniem w loop()

Udostępnij ten post


Link to post
Share on other sites

Cześć, nie znam się na Arduino jakoś mocno więc może nie trafię, ale w pracy trochę zajmuję się programowaniem.

Czy funkcja prawo() jest rzeczywiście zaimplementowana na końcu jak funkcja, czy zawiera wszystkie wymagane elementy? Bo na to wskazywałby komunikat. "Wyrażenie nie może zostać użyte jako funkcja."

czyli

void prawo()
{
//jakiś tam kod od robienia "prawo"
}

Może brakuje nawiasu klamrowego, średnika, nawiasów po "prawo" albo funkcja loop() omyłkowo zawiera implementację funkcji prawo() (loop() zamyka się za późno (przesunięty nawias klamrowy)). Może implementujesz funkcję "Prawo()" a wywołujesz "prawo()"? Trudno o poprawki bez patrzenia na kod.

Język Arduino jest kompilowany, a nie interpretowany po lini, a IDE Arduino i tak wrzuca funkcję dodatkowe przed setup() i loop() zanim skompiluje więc miejsce nie ma znaczenia.

Udostępnij ten post


Link to post
Share on other sites

Funkcja musi być zdefiniowana zanim będzie użyta, tak jak Elvis napisał.

Zresztą, chyba niepotrzebnie strzępimy języki, bo autor nie dostał odpowiedzi w 10 sekund, więc sobie poszedł gdzieś indziej.

Udostępnij ten post


Link to post
Share on other sites

W pliku .ino nie musi (preprocesor dodaje brakujące deklaracje).

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...