ATNEL tech-forum
https://forum.atnel.pl/

ADC bład w wyswietlaniu napiecia na LCD
https://forum.atnel.pl/topic63.html
Strona 1 z 1

Autor:  pawel2604 [ 27 lis 2011, o 11:59 ]
Tytuł:  ADC bład w wyswietlaniu napiecia na LCD

Witam
Napisałem program na podstawie książki Pana Mirka. Program służy do mieżenia napięcia do 5V. Problem pojawia sie przy wyświetlaniu pierwszego miejsca po przecinku.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Na wyświetlaczu zamiast np. wartosci 1,02V pojawia sie 1,2V. Zwiekszajac napiecie do wartosci 1,10 wskazania sa prawidłowe. Myśle że bład tkwi w tym że częsc ułamkowa jest to reszta z dzielenia, wiec jeśli :
(1,02 / 100) %100 = 2
Brakuje wiec zera przed 2, stad ten problem. Jak mozna go rozwiazac?

Autor:  mirekk36 [ 27 lis 2011, o 13:35 ]
Tytuł:  Re: ADC bład w wyswietlaniu napiecia na LCD

A ja tam w książce tzn w przykładach na DVD (do których nie wiem dlaczego tak mało osób zagląda) umieściłem taką fajną sprytną funkcję int_to_str() .... dlaczego kolega się nią nie posłuży ??? dlaczego nie przeanalizuje jak ona działa ? a właśnie zrozumienie jej zasady działania pozwoliłoby szybko dojść do tego dlaczego tak a nie inaczej dzieje się w tym przypadku jaki kolega opisał.

Proponuję zatem jak najszybciej zajrzeć do tego kodu i dać znać czy pomogło ok?

Autor:  pawel2604 [ 1 gru 2011, o 11:49 ]
Tytuł:  Re: ADC bład w wyswietlaniu napiecia na LCD

Pomogło, chociaz jeszcze nie dokońca rozumiem działanie tej funkcji. Musze ja sobie na spokojnie przeanalizować. Teraz spróbuje zrobić aby na jednym wyswietlaczu LCD było wyświetlanych kilka pomiarów napiecia naraz.
Dziekuje za pomoc.

Autor:  mirekk36 [ 1 gru 2011, o 12:46 ]
Tytuł:  Re: ADC bład w wyswietlaniu napiecia na LCD

Tak, tak warto przeanalizować dokładnie działanie tej funkcji...

a na piechotę też mógł kolega to zrobić, ale to jest zawsze niepotrzebna grzebanina w kodzie i zawsze trzeba dodatkowe linie kodu wklepywać....

wystarczyło bowiem zrobić warunek:

Kod:
if( liczba < 10 ) lcd_str("0");


o ile oczywiście miałyby być dwie liczby po przecinku. Bo dla trzech co zrozumiałe trzeba byłoby już inaczej....

Jak widać, dla liczby mniejszej niż 10 najpierw taki warunek wyświetli to brakujące zero więc wynik będzie tego tyou:

1.03

zamiast

1.3

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/