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



Teraz jest 29 mar 2024, o 13:06


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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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: 313
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

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: 544
Pomógł: 27

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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO