Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 kwi 2024, o 13:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 27 lis 2011, o 11:59 
Offline
Nowy

Dołączył(a): 20 lis 2011
Posty: 16
Pomógł: 0

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?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2011, o 13:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

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?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2011, o 11:49 
Offline
Nowy

Dołączył(a): 20 lis 2011
Posty: 16
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2011, o 12:46 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

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

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO