Skocz do zawartości

[C]WinAVR, ADC odczyt z rejestru ADCL i ADCH


Skipper

Pomocna odpowiedź

Witam serdecznie.

Mam taki dziwaczny problem...

Obsługa ADC wszystko w porządku ale pojawia się problem gdy np chcę wynik przetwarzania, zapisany w ADCH, zapisać do jakiejś zmiennej w postaci dziesiętnej. Jak tego dokonać? szukając w google znalazłem funkcje itoa()/utoa(), ale nie mam pojęcia co z nią robić bo one zwracają ciąg znaków, a ja chcę po prostu żeby gdy w rejestrze ADCH jest wartość 11 to w zmiennej int wynik była wartość 3.

Bardzo dziękuje za wskazówki 🙂

Link do komentarza
Share on other sites

Chyba że koledze chodzi o liczbę dziesiętną w formacie BCD, łatwiejszą do wyświetlenia. Pea5, w uC nigdy nie w zmiennej 3, najwyżej górne pół bajtu to liczba dziesiątek, dolna jedności, ale zawsze 3 to będzie 11. Ale obliczenia na BCD są bez sensu, więc doprecyzuj o co Ci chodzi.

Link do komentarza
Share on other sites

Hej, dzięki za odp. Chodzi o to że do portu adc mam podpięty dzielnik, w skład którego wchodzi termistor. Zamierzam odczytywać kolejne wartości napięcia dla poszczególnych temperatur i coś tam z nimi dalej powiedzmy robić. Jak dla mnie bardzo niewygodne byłoby przy tym posługiwanie się liczbami w formie binarnej, a to dlatego że chce charakterystykę rezystancji w funkcji temperatury opisać wielomianem (interpolować). Więc ciężko będę miał wstawić wartość 11001101 do równania y=x^2+4x, przy czym y to temperatura, która następnie będzie wyświetlana. Generalnie robię to bez celu, ale chciałbym wykorzystać trochę teorii z metod numerycznych. Od taki prosty termometr, którego wynik wrzucę na wyświetlacze 7segmentowe (tą część programu już mam, i posługuję się tam właśnie liczbami dziesiętnymi, więc problemu z BCD nie będzie).

Ps. bardzo proszę o nie pisanie postów że to bez sensu bo są termometry cyfrowe, wiem że są i już takich używałem 🙂

Ps.2 Jeśli jednak ktoś miałby jakieś konstruktywne uwagi to zapraszam serdecznie 🙂

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Zapewniam Cię, że wstawienie wartości 11001101 binarnie jest tak samo łatwe jak wstawienie 205 dziesiętnie, wyni zawsze wychodzi 42845 w tym x^2+4*x. Na BCD zmieniaj dopiero, jak skończysz wszystkie obliczenia, inaczej dodajesz sobie aby roboty.

PS. to jest chyba akurat takie forum gdzie większość uczy się jak zrobić coś co juz wymyślono, i nikt nie mówi że robienie światłoluba jest bez sensu.

Link do komentarza
Share on other sites

wsowa, mówię o przybliżeniu charakterystyki rezystancji w funkcji temperatury w zakresie np od 0 do 50C wielomianem stopnia n-tego. Czyli jak kto woli Aproksymacja/Interpolacja. Bo ciężko R=f(T) zaaproksymować linią prostą....

Chechli, dziękuje, jutro sprawdzę czy mi śmiga, jakoś niepewnie się czuję z tymi wszystkimi działaniami na liczbach binarnych, tak to jest na programowaniu uczą wszystkiego na liczbach dziesiętnych i tak z głupoty człowiek się przyzwyczaił ;/

Link do komentarza
Share on other sites

Pea5, sorki - jakos umknelo mi zdanie o interpolacji i myślałem ze metodami numerycznymi nazywasz wyswietlanie pomiaru:)

Zapomnij o liczbach binarnych i dziesiętnych. Reprezentacja nie ma dla Ciebie znaczenie. liczba to liczba. jezeli masz jakas wartosc w ADCH i przypiszesz ja do jakiejs zmiennej to w niej bedzie ta sama wartosc.

reprezentacja moze miec znaczenie dopiero przy wypisywaniu, bo uzadzenie wypisujace moze wymagac podania liczby w odpowiedniej reprezentacji (binarnie, 1 z N, BCD).

Link do komentarza
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...

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.