Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATtiny13A][C] - Źle interpretowany warunek if przy ADC=1023?

Defozo 19 Lis 2015 23:55 783 2
  • #1 19 Lis 2015 23:55
    Defozo
    Poziom 17  

    Witam, mam taki program:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Gdy odczytany poziom napięcia z ADC jest mniejszy niż 1023, ale stały, to wtedy wszystko działa poprawnie: IF w pętli wykonuje się tylko jeden raz, natomiast, gdy poziom napięcia odczytany na ADC jest równy 1023, to wtedy IF jest wykonywany ciągle (warunek jest cały czas spełniony, choć nie powinien).

    Dlaczego tak się dzieje i jak to naprawić?

    Proszę o pomoc,
    Pozdrawiam,
    Defozo

    0 2
  • #2 20 Lis 2015 08:07
    Steryd3
    Poziom 31  

    Może kolega nieco jaśniej- o którą linijkę kodu chodzi bo nie widzę żadnego "if" który miał by wyżej opisane warunki?

    0
  • Pomocny post
    #3 20 Lis 2015 08:09
    BlueDraco
    Specjalista - Mikrokontrolery

    Cała wartość z przetwornika jest dostępna jako ADCW - nie musisz jej składać z połówek ADCH i ADCL.

    Przy wartościach powyżej 999 itoa może zamazywać jakąś zmienną, bo str u Ciebie ma 4 bajty , a powinien mieć 5.

    0