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

[ATmega32][C] Program się wysypuje po włączeniu trybu pomiaru napięć

lipol 27 Wrz 2019 00:59 438 2
REKLAMA
  • #1 18188826
    lipol
    Poziom 8  
    Witam,

    Mój program działa w dwóch trybach: pomiar częstotliwości i pomiar 4 napięć 0-10V.
    Zmiana trybu odbywa się poprzez przycisk podpięty pod PINC2.
    W trybie pomiaru napięć stosuje fragment kodu, który porównuje aktualne pomiary z poprzednimi i pomija je jeśli zmiana była zbyt mała, tak aby na wyświetlaczu nie było widać nieustannych zmian.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Problem polega na tym, że po włączeniu tego trybu program się "wysypuje" i nie reaguje na przyciski.
    Wszystko działa świetnie, jeśli zakomentuję przynajmniej 2 z tych 4 linijek, które przecież są jednakowe LUB na stałę ustawię mode=1 i usunę sprawdzanie stanu przycisku (PINC2). Próbowałem wielu różnych zmian i nic nie pozwala mi zostawić wszystkich czterech linijek.
    Bardzo proszę o pomoc jaka może być przyczyna takiego działania.

    Oto większy fragment kodu:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 18188844
    szelus
    Poziom 34  
    Nie pokazałeś najważniejszego, czyli deklaracji tych zmiennych adc_result/prev_adc_result.
    Niech zgadnę - zmienne automatyczne? Jeżeli tak, to zagaduję dalej, że brakuje stosu.
  • #3 18189266
    lipol
    Poziom 8  
    Istotnie to było problemem. Zmienne były zadeklarowane w funkcji main, Teraz działa jak należy.
    Bardzo dziękuje za pomoc :)
REKLAMA