Skipper Napisano Sierpień 3, 2010 Udostępnij Napisano Sierpień 3, 2010 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 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
TIMONek Sierpień 3, 2010 Udostępnij Sierpień 3, 2010 int wynik = ADCH Gwarantuje Ci, ze wynik bedzie w postaci dziesietnej. Cytuj Link do komentarza Share on other sites More sharing options...
Chechli Sierpień 3, 2010 Udostępnij Sierpień 3, 2010 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. Cytuj Link do komentarza Share on other sites More sharing options...
Skipper Sierpień 4, 2010 Autor tematu Udostępnij Sierpień 4, 2010 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 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Chechli Sierpień 4, 2010 Udostępnij Sierpień 4, 2010 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. Cytuj Link do komentarza Share on other sites More sharing options...
wsowa Sierpień 4, 2010 Udostępnij Sierpień 4, 2010 chciałbym wykorzystać trochę teorii z metod numerycznychO czym ty mowisz? Do rzeczy: liczba to liczba. Czy zapisana binarnie czy dziesiętine, wartość ma taką samą. Cytuj Link do komentarza Share on other sites More sharing options...
Skipper Sierpień 4, 2010 Autor tematu Udostępnij Sierpień 4, 2010 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ł ;/ Cytuj Link do komentarza Share on other sites More sharing options...
wsowa Sierpień 4, 2010 Udostępnij Sierpień 4, 2010 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). Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!