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



Teraz jest 30 cze 2026, o 21:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 2 gru 2014, o 23:10 
Offline
Nowy

Dołączył(a): 09 paź 2014
Posty: 16
Pomógł: 0

Witam forumowiczów,

Korzystając z funkcji itoa próbuję wyświetlić wartość zmiennej na wyświetlaczu LCD (wartość zmiennej obsługiwana jest dwoma przyciskami) i udaję się to połowicznie - wartości większe od 100 wyświetlają się poprawnie, jednak poniżej już nie. I tak zamiast 99 otrzymuję 990, 98 to 980 itd.

Poniżej zamieszczam fragment kodu i prosiłbym o udzielenie pomocy.

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


Pozdrawiam,
PG



Ostatnio edytowano 2 gru 2014, o 23:18 przez papachili, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 23:12 
Offline
Użytkownik

Dołączył(a): 19 cze 2014
Posty: 247
Pomógł: 15

Zmień kod tak jak w tym temacie http://forum.atnel.pl/topic7402.html bo któryś z zielonych lub różowy może usunąć temat.

_________________
http://elektropanel.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 23:19 
Offline
Nowy

Dołączył(a): 09 paź 2014
Posty: 16
Pomógł: 0

Dzięki, poprawione ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 23:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

To nie funkcja itoa() źle działa tylko na wyświetlaczu pozostaje ci zero po liczbie sto.

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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 23:28 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

W pętli głównej zaraz za lcd_locate(0,0) wyślij na wyświetlacz string z 16 spacjami a potem znów daj lcd_locate (0,0)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 23:33 
Offline
Nowy

Dołączył(a): 09 paź 2014
Posty: 16
Pomógł: 0

jacekk232 napisał(a):
To nie funkcja itoa() źle działa tylko na wyświetlaczu pozostaje ci zero po liczbie sto.

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


Faktycznie! W tym tkwił cały problem, ale nie mogłem jakoś do tego samemu dojść :P Wcześniej sprawdzałem na sztywno podaną wartość 99 to wyświetlało prawidłowo.

Dzięki za pomoc :)

------------------------ [ Dodano po: 4 minutach ]

Nefarious19 napisał(a):
W pętli głównej zaraz za lcd_locate(0,0) wyślij na wyświetlacz string z 16 spacjami a potem znów daj lcd_locate (0,0)


Ta metoda również zdaje się działać, ale powoduje znaczne migotanie ekranu.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2014, o 23:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

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

chodzi o to, by nadpisywać spacjami i później wynikiem tylko część wyświetlacza, a nie nadpisywać tego, co się nie zmienia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2014, o 09:46 
Offline
Nowy

Dołączył(a): 09 paź 2014
Posty: 16
Pomógł: 0

icer_cmg napisał(a):
To może tak?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

chodzi o to, by nadpisywać spacjami i później wynikiem tylko część wyświetlacza, a nie nadpisywać tego, co się nie zmienia.



Fakt, napis "BPM =" się nie zmienia więc można go pominąć.

Jednak w dalszym ciągu wartości wyświetlają się poprawnie, ale są ledwo widoczne i migają.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2014, o 10:09 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ale cały wyświetlacz miga czy tylko te cyfry?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2014, o 12:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2014
Posty: 53
Pomógł: 2

Cały wyświetlacz migać nie będzie bo napis BPM = jest przed pętlą while więc jest ustawiany tylko raz. Zmianie ulegnie tylko wartość z buforu. Wpisując w to miejsce "spacje" powodujemy, że ta wartość jest nadpisywana spacjami czyli "czyszczona" z wyświetlacza. W tym przypadku poniżej funkcji wyświetlania znajduje się jeszcze trochę programu, co uP zabiera troszkę czasu przez co wynik na LCD powinien ładnie się pokazywać. W przypadku kiedy w pętli jest tylko wyświetlanie zmiennej, może okazać się, że przy zastosowaniu takiego rozwiązania wartość będzie niemiło przygasać"mrugać".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2014, o 13:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Po prostu zbyt często aktualizujesz zmienną na wyświetlaczu. Wrzuć delay albo aktualizuj wyświetlacz po ustawieniu flagi w przerwaniu. Unikniesz wtedy migotania.



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: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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