Skocz do zawartości

Zawieszanie się programu podczas odczytywania wejścia analogowego


XPapekX

Pomocna odpowiedź

Witam Panów i Panie,

Robiąc projekt zegarka z funkcją budzika, natrafiłem na dość specyficzny błąd. Mianowicie próba odczytania wartości analogowej z A0 skutkowała zawieszeniem się całego programu, a było to spowodowane tym iż korzystałem z zapisu wykonania głównej funkcji programu int main(), a nie void setup() i void loop(). Oczywiście korzystanie z int main() pozwala zaoszczędzić trochę pamięci mikrokontrolera, ale jak widać nie współpracuje to z funkcją analogRead(). Ponadto dzielę się tym spostrzeżeniem bo inne osoby również mogą w przyszłości na taki błąd wpaść. Jeżeli też ktoś z Państwa wie co jest powodem takiego błędu i jak się go pozbyć to zapraszam do podzielenia się informacjami. Zamieszczam również screena z przykładem o którym mowa.

Pozdrawiam oraz przepraszam jeżeli już gdzieś na forum był opisany ten problem.

535353.png

Link do komentarza
Share on other sites

@XPapekX witam na forum 🙂 Temat wydzieliłem z kursu Arduino, bo nie jest związany bezpośrednio z omawianymi tam tematami. Podczas korzystania z Arduino powinno się korzystać z funkcji setup i loop - to "główne" elementy tego ekosystemu. Brak wywołania takich funkcji może powodować również inne błędy. Więcej informacji na ten temat znaleźć można w artykule opisującym jak jest zbudowane Arduino: https://forbot.pl/blog/arduino-co-w-srodku-3-zrodlo-wbudowanych-funkcji-id17291

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.