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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 11 lip 2025, o 16:00


    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: 27415
    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: 27415
    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 20 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