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



Teraz jest 28 mar 2024, o 19:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 21 sty 2022, o 19:50 
Offline
Nowy

Dołączył(a): 27 sie 2021
Posty: 12
Pomógł: 0

Witam wszystkich coś mi ciągle umyka w tym przykładzie:
Lekcja 6 i wyświetlanie wyniku na LCD chodzi o same obliczenia

uint16_t pomiar(uint8_t kanal);
uint32_t wynik;
uint16_t pm;
uint8_t cz_d;

lcd_cls();

pm = pomiar(5); // odczytana wartość ADC 820
wynik = pm * 25 * 2; // 0,0025 * 10000 i 2 = 41000
cz_d = wynik/10000; // 4
lcd_int( cz_d ); // wyświetla 4 czyli OK

pm = pomiar(5); // odczytana wartość ADC 820
wynik = pm * 25 * 2; // 0,0025 * 10000 i 2 = 41000
cz_d = wynik/1000; // 41
lcd_int( cz_d ); // wyświetla 41 czyli OK

pm = pomiar(5); // odczytana wartość ADC 820
wynik = pm * 25 * 20; // 0,0025 * 10000 i 20 = 410000
cz_d = wynik/10000; // powinien być 41
lcd_int( cz_d ); // wyświetla 1 czyli NOK

Pewnie diabeł tkwi w szczegółach może ktoś z kolegów podpowie co tu może być nie tak ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2022, o 22:03 
Offline
Moderator
Avatar użytkownika

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

Proszę najpierw zadaj konkretne pytanie i opisz dobrze problem - bo kompletnie nie wiem o co chodzi w tak zadanym pytaniu

_________________
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: 21 sty 2022, o 22:30 
Offline
Nowy

Dołączył(a): 27 sie 2021
Posty: 12
Pomógł: 0

Już się poprawiam

Chodzi o to, że nie wiem dlaczego w trzecim przykładzie wynik wyświetla się nieprawidłowo powinno wyświetlić się 41 a wyświetla się 1.
Na początku podałem definicję zmiennych jakich używam, podałem też dwa pierwsze przykłady gdzie wynik wyświetla się prawidłowo.
uint32_t wynik;
uint16_t pm;
uint8_t cz_d;

1.
wynik = 820 * 25 * 2 = 41000
cz_d = wynik/10000 = 4
LCD wyświetla 4

2.
wynik = 820 * 25 * 2 = 41000
cz_d = wynik/1000 = 41
LCD wyświetla 41

3.
wynik = 820 * 25 * 20 = 410000
cz_d = wynik/10000 powinien być 41
LCD wyświetla 1 zamiast 41



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2022, o 23:08 
Offline
Moderator
Avatar użytkownika

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

awojcick napisał(a):
wynik = 820 * 25 * 20 = 410000


a zrób tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
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: 22 sty 2022, o 15:37 
Offline
Nowy

Dołączył(a): 27 sie 2021
Posty: 12
Pomógł: 0

Dzięki zadziałało ;-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2022, o 15:50 
Offline
Moderator
Avatar użytkownika

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

awojcick napisał(a):
Dzięki zadziałało ;-)

ale już wiesz o co chodzi ? i dlaczego zadziałało ? Dlaczego było źle ?

_________________
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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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