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 14 cze 2025, o 21:00


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 22 lip 2021, o 20:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 paź 2013
    Posty: 498
    Lokalizacja: Siedlce
    Pomógł: 9

    Witam a więc napisałem sobie funkcję do obliczeń:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

    To na wyświetlaczu zgodnie z oczekiwaniem pojawi mi się 96 :)
    problem pojawia się z większymi wartościami bo nagle pojawiają mi się ujemne wartości mimo że mam typy bez znaków jak widać dałem typy uint32_t
    i z tego co zauważyłem dzięki funkcji lcd_int();
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    maksymalnie mogę wyświetlić cyfrę z typu int16_t czyli - 32768 do 327678 jak zmienić tą wartość?

    _________________
    Ucz się ucz ,bo po to tutaj jesteś...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2021, o 21:02 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 550
    Pomógł: 28

    Jak sama nazwa funkcji lcd_int wskazuje funkcja obsługuje zakres liczb intiger więc musisz sobie napisać funkcję lcd_long.
    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: 22 lip 2021, o 21:19 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 paź 2013
    Posty: 498
    Lokalizacja: Siedlce
    Pomógł: 9

    Jeszcze zapytam czy ta informacja była w bluebooku? :mrgreen:

    _________________
    Ucz się ucz ,bo po to tutaj jesteś...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2021, o 08:28 
    Offline
    Moderator
    Avatar użytkownika

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

    RadekB86 napisał(a):
    Jeszcze zapytam czy ta informacja była w bluebooku? :mrgreen:


    Panie - jak BYK była i jest ;) .... Bluebook to nie gotowe i super zoptymalizowane biblioteki, których by początkujący nie zrozumiał - Bluebook uczy budować biblioteki, wskazuje drogę - podpowiada ... zachęca do własnych prób i ćwiczeń

    Gotowe i zoptymalizowane biblioteki to można od jakiegoś czasu kupić oddzielnie w sklep.atnel.pl

    a tu proszę - żeby nie być gołosłownym - fragment jednej ze stron z Bluebooka (str.232)

    Obrazek

    ;) zwróć uwagę na czerwony prostokącik w którym widać jaką inną funkcję można zastosować - a to nie jedyna bo poza ltoa() może być jeszcze utoa() i chyba już się domyślasz o co chodzi. A w innej części Bluebooka zachęcałem też do przeglądania dokumentacji AVR GCC żeby podpatrywać sobie jakie znajdują się gotowe funkcje w AVR GCC - bo często początkujący wyważa głową drzwi - podczas gdy później okazuje się, że można je było otworzyć i to nawet bez klucza ;) bo zamiast własnych setek linii kodu - znajduje się prosta wbudowana w AVR GCC funkcja która robi to samo i często ma wewnątrz o wiele bardziej optymalny 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: 23 lip 2021, o 10:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1978
    Lokalizacja: Lipsko
    Pomógł: 125

    Inny sposób to rozbicie zmiennej na dwie mniejsze i dopiero jej wyświetlanie. Zawsze jest co najmniej dwa rozwiązania... Został bym jednak przy napisaniu sobie funkcji LCD dla zmiennych long ;-)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 lip 2021, o 10:46 
    Offline
    Moderator
    Avatar użytkownika

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

    SylwekK napisał(a):
    Został bym jednak przy napisaniu sobie funkcji LCD dla zmiennych long

    ja polecam zrobić sobie jeszcze lcd_hex(), lcd_bin() z zerami nieznaczącymi itp ;) zawsze może się kiedyś przydać - choćby do debugowania

    _________________
    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  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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