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



Teraz jest 23 gru 2024, o 19:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 27 cze 2013, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Witam


Napisałem sobie taki mini kod do rysowania paska-wizualizacji liczb.
Tak to ma wyglądać: liczba 18 >< ||||| ||||| ||||| ||| (te pięć kresek to jedna komórka wyświetlacza)
liczba -12 || ||||| ||||| ><

Do takiego rysowania potrzebujemy 10 własnych znaków, jak wiemy w sterowniku HD44780 mamy dostępnych tylko 8 miejsc na te znaki.
Dlatego wpadłem na pomysł by zamiast 8 własnych znaków, użyć 3 - całe pole zapełnione - środkowy znak - znak końca(definiowany w locie).
Z tym ostatnim jest problem, nie chce to działać, ja nie wiem z czym jest problem więc pytam mądrzejszych :)

tu kod:

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



bar.h

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


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.



Dodam że kompilator błędów nie widzi, problem jest z definiowaniem znaku w locie.
Wszystko inne sprawdzałem i działa jak powinno :)

Proszę o podpowiedzi

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 05:34 
Offline
Moderator
Avatar użytkownika

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

Panowie, panowie .... kiedy nauczycie się właściwie zadawać pytanie ? na forum ;)

1bobik1 napisał(a):
Z tym ostatnim jest problem, nie chce to działać,

1bobik1 napisał(a):
problem jest z definiowaniem znaku w locie


- co to znaczy nie chce działać ?
- co to znaczy że jest problem ?

no przecież to chyba oczywiste że jak się zadaje pytanie to coś nie chce działać i jest problem - ale czy nie sądzisz że warto byłoby podać chociaż jakiś elementarny opis tego co się u ciebie dzieje? spróbować chociaż wskazać podejrzane przez ciebie miejsce w kodzie ?

nie chce działać czyli co? - w ogóle się nie wyświetlać? wyświetla się źle, program się zawiesza? wszystko znika z ekranu ? no takich pytań po takim pytaniu można mnożyć w nieskończoność

jest problem z definiowaniem znaku w locie czyli co ? na czym on polega ? o co chodzi ?

;) no nie można tak - bo później dziwicie się, że nikt nie odpowiada czy nie pomaga .... na pytania typu:

"macie tu hektolitr kodu, schematu wam nie dam, nie opiszę na czym polega problem, a wy znajdźcie mi gdzie jest błąd i jaki?"

;) tylko proszę nie denerwuj się - bo nie jest moim celem jakoś ci tu przygadać tylko zmotywować do zadawania lepszych i bardziej precyzyjnych pytań 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: 28 cze 2013, o 11:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Przepraszam za mało precyzyjne wyjaśnienie tematu i śpieszę z wyjaśnieniami.

Program się nie zawiesza, wyświetla w pierwszej linii wartość a w drugiej słupek.
tzn wyświetla znaki: środka i cały wypełniony znak
Znaki te są wrzucane do pamięci LCD przed funkcją rysującą w funkcji inicjalizacyjnej:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


W przypadku gdy wartość podawana do funkcji daje resztę z dzielenia przez 5, to ten kawałek kodu powinien zdefiniować i wyświetlić odpowiedni znak, niestety nic nie definiuje i nic nie wyświetla.

Tak to wygląda:
bar.val=18

>< ||||| ||||| |||||
a powinno wyglądać tak:
>< ||||| ||||| ||||| |||
^
|
ten znak powinien być definiowany przed każdym wyświetleniem.

Mam nadzieję że teraz będzie jaśniej i jeszcze raz przepraszam za tak lakoniczny opis (taka wada genetyczna ;) )

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 12:35 
Offline
Moderator
Avatar użytkownika

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

a no widzisz - teraz to inna rozmowa

więc lcd_defchar_P niszczy ustawienie kursora i trzeba go znowu ustawić - dlatego nie wyświetla ci się ten znak

_________________
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: 28 cze 2013, o 22:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Dziękuję pięknie :) działa

mam jeszcze takie pytanko:
Jak najprościej zamienić liczbę ujemną w dodatnią
a tym fragmencie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
bar.val ma wartość ujemną, a muszę obliczyć to tak jakby była dodatnia, jak to najprościej zapisać ?

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 22:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2013
Posty: 223
Zbananowany użytkownik

Pomógł: 21

if (popo<0) popo=-popo;

_________________
Nie pisz komentarzy - dobry kod komentuje się sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 23:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

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

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 23:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2013
Posty: 223
Zbananowany użytkownik

Pomógł: 21

No jeżeli tutaj bar.val jest zawsze ujemne to ok, jeżeli nie to:
lcd_defchar_P(0x81,znak[(((bar.val%5)<0) ? (-(bar.val%5)):(bar.val%5))];

_________________
Nie pisz komentarzy - dobry kod komentuje się sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 cze 2013, o 05:53 
Offline
Moderator
Avatar użytkownika

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

można też tak ;) ... może troszkę prościej wyjdzie ? hmmm ?

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


i po zawodach ;)

_________________
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: 29 cze 2013, o 23:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Mirku dziękuję za podpowiedź (taką dawał mi też Anty)
Ale pozostanę jednak przy wersji z minusem. W tym przypadku nie ma chyba sensu dodawanie kolejnej biblioteki do tak błahego celu.

_________________
sig on ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO