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



Teraz jest 5 maja 2026, o 12:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ] 
Autor Wiadomość
PostNapisane: 10 cze 2014, o 12:05 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Witam!
Wykorzystuję biblioteki wyświetlacza LCD z niebieskiej książki. Mam zdefiniowanych likla własnych znaków m.in Ż. Korzystam z wyświetlacza 4x20.
Zdefiniowany jest tak w pliku lcd44780.h
#if ( (LCD_ROWS == 4) && (LCD_COLS == 20) )
#define LCD_LINE1 0x00 // adres 1 znaku 1 wiersza
#define LCD_LINE2 0x40 // adres 1 znaku 2 wiersza
#define LCD_LINE3 0x14 // adres 1 znaku 3 wiersza
#define LCD_LINE4 0x54 // adres 1 znaku 4 wiersza
#endif

Wyświetlacz wyświetla na razie wyniki pomiaru temperatury i wilgotności powietrza z czujnika DHT22.

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


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


I main.c

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



I teraz ten problem:
zdarza mi się (właściwie cały czas po dodaniu jakiegoś napisu na wyświetlaczu) pojawiają mi się w kilku miejscach na wyświetlaczu zdefiniowane przeze mnie znaki
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2014, o 13:11 
Offline
Moderator
Avatar użytkownika

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

Tak na szybko - choć mogę się mylić bo nie mam teraz jak sprawdzić - prawdopodobnie źle się posługujesz funkcją dtostrf()

No przecież nawet widać zależność wyraźną - że TYLKO w miejscach związanych z wyświetlaniem jej wyniku masz krzaki na LCD ...

doczytaj o tej funkcji dokładniej albo ew użyj sprintf() ....

albo w ogóle (nie wiem po co w ogóle używać floatów) ... przerób to na liczby całkowite ... tzn oczywiście wynik będziesz miał z przecinkiem .... popatrz sobie przykłady w Bluebooku jak pozbywać się floatów np rozdział o ADC a mieć jednocześnie wyniki z miejscami po przecinku

_________________
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: 10 cze 2014, o 17:47 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Przy zmianie kodu i wykorzystaniu itoa jest podobnie...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2014, o 20:23 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

A spróbuj tak:

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: 10 cze 2014, o 20:30 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Nie pomogło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2014, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

a zadeklaruj bufo printbuff jako zmienną globalną
powyżej funkcji main.
Jest możliwość że w tym buforze są jakieś śmieci i są wyświetlane
dlatego że nie jest zerowany automatycznie .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2014, o 22:24 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Nic to nie pomogło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2014, o 23:13 
Offline
Moderator
Avatar użytkownika

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

Spróbuj przed każdym poleceniem:

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


dać 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: 11 cze 2014, o 08:10 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Też nie pomogło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 08:24 
Offline
Moderator
Avatar użytkownika

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

Maverick napisał(a):
Też nie pomogło


Nie chce mi się w to wierzyć - coś robisz źle albo źle testujesz ...

zmień lokację tych liczb np:

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: 11 cze 2014, o 08:36 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 09:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 233
Lokalizacja: Gdynia
Pomógł: 15

Po ostatnim lcd_defchar_P daj jedno lcd_cls.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 09:33 
Offline
Moderator
Avatar użytkownika

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

Maverick --> pokazujesz obrazek a jakie masz wnioski ?

_________________
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: 11 cze 2014, o 09:49 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Nie wiem, może popełniłem gdzieś błąd przy definicji własnych znaków



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 10:24 
Offline
Moderator
Avatar użytkownika

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

Maverick napisał(a):
Nie wiem, może popełniłem gdzieś błąd przy definicji własnych znaków


No ale zobacz - przesunąłeś wyświetlanie tablicy printbuf

i specjalnie wpisujemy już w miesce 4-go znaku gwiazdkę, a w miejsce 5-go znaku wpisujemy ZERO czyli koniec stringa zatem powinno się wyświetlić np

40.2*

a u ciebie wyświetla się teraz na innej pozycj

40.2┼

i jakiś ptaszek .... czyli masz w tej tablicy jakiś ŚMIETNIK

Jakiego procka ty używasz tak w ogóle ?
po co printbuf u ciebie ma aż 100 bajtów ??? skoro ładujesz do niego tylko po kilka znaków ?

------------------------ [ Dodano po: 1 minucie ]

pokaż ty kod po zmianach ale tylko ten w main bo tak to gadamy jak głuchy z garbatym.

poza tym zdefiniuj sobie printbuf jako zmienną globalną

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


i zrób wyświetlanie tak jak masz tylko bez napełniania pritbufa tym swoim dtorfem

------------------------ [ Dodano po: 2 minutach ]

popatrz, pokombinuj - zrozum ..... masz problem z wyświetlaniem stringa prawidłowo z bufora - a nie problem z definicją znaków

_________________
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: 11 cze 2014, o 11:04 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Używam ATmega 168.
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: 11 cze 2014, o 11:06 
Offline
Moderator
Avatar użytkownika

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

no i co się teraz wyświetla ?

_________________
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: 11 cze 2014, o 11:13 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

coś takiego

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 11:22 
Offline
Moderator
Avatar użytkownika

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

wiesz co ? wywal ten cały kod tzn zrób inny projekt testowy bo przecież to jest coś ... hmmm no szkoda gadać i się bawić - no masz jakiś taki babol gdzieś zrobiony że nikt ci nie podpowie

1. weź albo projekt z książki z Bluebooka wgraj i sprawdź czy działa dobrze ?

2. weź zrób pustą pętlę główną i przed nią zainicjalizuj LCD , zdefiniuj kilka znaków i wyświetl byle co z locate'em

3. zrobiłeś ten LCD_CLS() po zdefiniowaniu znaków ?

_________________
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: 11 cze 2014, o 12:14 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

1. Projekt 04_LCD z bluebooka działa poprawnie

Obrazek

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


też jest dobrze wyświetlane

3. Tak w tamtym projekcie było LCD_CLS() po zdefiniowaniu znaków



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 12:24 
Offline
Moderator
Avatar użytkownika

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

a no widzisz pan czyli powoli choć widzę w bólach zbliżamy się do babola ;) który gdzieś robisz ... bo skoro te przykłady działają to trzeba szukać po kolei gdzie albo inaczej "CO" u ciebie powoduje kiszkę

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


zrób tak - gdy masz ten "test" (bez tego wpisywania zera) i pokaż co się dzieje. Tyle tylko że takie kroki po kolei sam powinieneś wykonywać - żeby dojść - ZŁAPAĆ BUG'a który wciska ci do bufora te śmieci

_________________
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: 11 cze 2014, o 12:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

[quote="Maverick"]

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


No ok a ad 2 teraz tak jak mirek pisal zdefiniuj znaki w pustym nowym projekcie i je wyswietl bo piszesz ze stringi sa poprawnoe wyswietlane to teraz potestuj ze znalami

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 cze 2014, o 14:07 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 46
Pomógł: 0

Czy o coś takiego chodziło:

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


to utworzyłem w projekcie w którym wyświetlacz wyświetlał poprawnie

Obrazek



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

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