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



Teraz jest 2 sie 2025, o 08:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 28 mar 2013, o 16:53 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 42
Pomógł: 0

Znowu mam nietypowe pytanie.
Zliczam impulsy z licznika, których jest sporo - nawet ponad 100000. Używając lcd_int(zmienna) mogłem wyświetlić maksymalnie 32000 z kawałkiem a potem wiadomo robiło się (-). Po wielkich trudach udało mi się to obejść tak:

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


i wywołuję to w programie np.

a=100000
lcd_ulong(a);

Pewnie coś źle opisałem i wiem że sprintf() zajmuje bardzo dużo ale to działa.

Teraz potrzebuję zliczyć ile jest znaków w zmiennej "a" i na podstawie tego wyliczać o ile miejsc przesuwać wynik na wyświetlaczu. Próbowałem użyć strlen(), ale nic mi z tego nie wychodzi :(.
Siedzę już nad tym dwie godziny, wertuję niebieska księgę (niedługo będę musiał kupić nowy egzemplarz bo z tego niewiele zostanie) i nic mi do głowy nie przychodzi.
Z góry dziękuję za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 17:11 
Offline
Moderator
Avatar użytkownika

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

a po co jak wystarczyło zamiast itoa() dać np bliźniaczą funkcję ltoa() ;)

sprintf niepotrzebny a i sporo miejsca we flash się zaoszczędzi

a w rozdziale o ADC masz przykład nawet funkcji formatującej liczby na LCD - tzn przykład jak samemu podejść do jej napisania ;)

_________________
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 mar 2013, o 17:35 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 42
Pomógł: 0

O matko... Różnica w wielkości kodu ogromna... Dłuuuuuga droga przede mną...
Jeszcze jak rozpracuję drugą część pytania to będę w domu.
Dziękuję za podpowiedź.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 17:42 
Offline
Moderator
Avatar użytkownika

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

grzesiekk napisał(a):
O matko... Różnica w wielkości kodu ogromna... Dłuuuuuga droga przede mną...
.


Nie martw się z takimi ludźmi jacy są tu na forum ta droga będzie na skróty i dużo przyjemniejsza - zobaczysz ;)


Autor postu otrzymał pochwałę

_________________
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 mar 2013, o 17:56 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 42
Pomógł: 0

Wczytuję się w rozdział o ADC i wyświetlaniu i chyba to mnie przerasta... Będę musiał rozpisać to na "if" :(



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

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

Pomógł: 21

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


Tutaj: "for (uint8_t max_dlugosc=9" wybierasz sobie ile maksymalnie cyfr będzie mieć liczba ;)


Autor postu otrzymał pochwałę

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



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

Dołączył(a): 01 sty 2013
Posty: 328
Lokalizacja: Rzgów k. Łodzi
Pomógł: 11

Odpal sobie dokumentację WinAVR i tam będziesz miał opisane wszystkie biblioteki które wchodzą w skład WinAVR. Każda funkcja jest opisana. Niech mnie ktoś wyręczy i powie koledze gdzie to jest - jestem na smartfonie :smile:

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 mar 2013, o 18:25 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 42
Pomógł: 0

Dziękuję za pomoc. Zastosowałem funkcję z ADC, z książki i powoli zaczynam rozumieć o co tam chodzi (działa świetnie).
Oczywiście na wariata skopiowałem to, co było "od komentowane", bez zwracania uwagi że jest to dla zwykłego int-a...
a dopiero po wczytaniu się zobaczyłem że część do long int jest "za komentowana"....



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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