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 26 lip 2025, o 12:28


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 7 lis 2020, o 14:59 
    Offline
    Nowy

    Dołączył(a): 08 kwi 2020
    Posty: 8
    Pomógł: 0

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

    Chciałbym wartość którą zwraca funkcja przeliczać później wraz z innymi zmiennymi typu float.
    Jak to zrobić, aby funkcja zwracała typ float zamiast uint8_t?

    Załóżmy że mam zmienną uint8_t zmienna = 0b0001110; i ona wynika z wcześniejszych obliczeń.
    Program wie, ale ja nie wiem tak na prawdę jaka wartość się pod nią kryje. W jaki sposób mogę wyświetlić na ekranie komputera zawartość poszczególnych zmiennych?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 lis 2020, o 15:19 
    Offline
    Moderator
    Avatar użytkownika

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

    Panie daj sobie spokój z floatami, i to do tak prostych celów, unikaj floatów na 8-bitowcach jak ognia, tym bardziej, że spokojnie bez floatów można zrobić ślicznie prosto i małym kosztem pamięci RAM wyświetlanie czy przesyłanie danych zmiennoprzecinkowych. Polecam Bluebooka - tam jest opisany sposób i to właśnie dla zabaw z ADC, ale także w wielu moich poradnikach wideo.

    https://atnel.pl/mikrokontrolery-avr-jezyk-c.html

    _________________
    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: 7 lis 2020, o 15:41 
    Offline
    Nowy

    Dołączył(a): 08 kwi 2020
    Posty: 8
    Pomógł: 0

    mirekk36 napisał(a):
    Panie daj sobie spokój z floatami, i to do tak prostych celów, unikaj floatów na 8-bitowcach jak ognia, tym bardziej, że spokojnie bez floatów można zrobić ślicznie prosto i małym kosztem pamięci RAM wyświetlanie czy przesyłanie danych zmiennoprzecinkowych. Polecam Bluebooka - tam jest opisany sposób i to właśnie dla zabaw z ADC, ale także w wielu moich poradnikach wideo.

    https://atnel.pl/mikrokontrolery-avr-jezyk-c.html

    Bluebooka mam.
    Nie chce wyświetlać tego napięcia na LCD.
    Może napiszę konkretniej o co mi chodzi.
    Funkcja ta zwraca mi wartość napięcia z czujnika gazu.
    Sensor czujnika zmienia swoją rezystancję pod wpływem stężenia gazu.

    Musze obliczyć rezystancję sensora ze wzoru: Ro=[Rl* (Uwe-Uwy) ]/Uwy
    Wartości Rl= 4,7k <<---- float
    Uwe 5V <<--- float albo int
    Uwy uint8_t właśnie z tej funkcji
    No to jak mam to policzyć jak mam równanie z dwoma różnymi typami zmiennych?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 lis 2020, o 17:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 324
    Lokalizacja: Rybnik
    Pomógł: 23

    Nie jestem pewien ani magikiem ale chyba trzeba zrobić "jawne rzutowanie".
    Jak się mylę, to niech mnie ktoś naprowadzi.

    _________________
    http://www.avrboss.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 lis 2020, o 17:30 
    Offline
    Użytkownik

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

    a co za problem pomnożyć Rl x 100 Uwe x 100 i potem to podzielić.
    https://www.youtube.com/watch?v=tlkCOv1Ixt0
    zacznij od cyklu tych poradników tam Mirek pokazuje gotowe rozwiązanie nawet w ćwiczeniu 1 wire jest pomoc do twojego problemu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 lis 2020, o 19:27 
    Offline
    Moderator
    Avatar użytkownika

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

    ASUR napisał(a):
    No to jak mam to policzyć jak mam równanie z dwoma różnymi typami zmiennych?

    Najpierw zrozum jak działa przeliacznie bez floatów z Bluebooka - bo coś czuję, że to pominąłeś niestety. Stąd twoje pytania dziwne jak dać radę z tym co masz.

    Już wyżej ci koledzy pisali i dawali wskazówki

    _________________
    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: 7 lis 2020, o 21:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lis 2015
    Posty: 219
    Pomógł: 20

    ASUR napisał(a):
    Wartości Rl= 4,7k <<---- float

    wartość 4,7k zapisaną w float możesz zapisać jako wartość 4700 w uint16_t



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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