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



Teraz jest 30 mar 2026, o 19:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 14 kwi 2013, o 18:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Witam,

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

Ten kod ma liczby rzeczywiste (zmiennoprzecinkowe), ale nie są traktowane jak one. Tzn. zajętość kodu programu nie rośnie gwałtownie. Teraz tak: chcę zamiast tego define wprowadzać je sam z ekranu dotykowego. To mam, tylko chodzi o to, jak zrobić aby reprezentować w programie 45.30 bez użycia double, float i #define? To ma user podawać. Jak to jest, że jest to define a w nim 45.3 i dalej operacje na tym a kod programu nie rośnie jak przy
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 wiedzieć, dlaczego w pierwszym przypadku nie pożera mi kilka % pamięci FLASH, a w drugim tak skoro to jest ta sama liczba i jak zrobić aby bez #define (bo zmienne) i bez double/float jednak operować potem na tym 45.3 (dla przykładu).

Zrobiłem strukturę reprezentującą liczbę rzeczywistą, ale z tym define wydaje mi się dziwne.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 kwi 2013, o 21:46 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Stałymi zdefiniowanymi ze znaczkiem # zajmuje się preprocesor i takie wyrażenia zostają obliczone wcześniej i mikrokontroler nie musi się tym zajmować, więc nie ma potrzeby dołączania funkcji do działań na liczbach zmiennoprzecinkowych.
Mnożenie dwóch ułamków dziesiętnych:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a struktura opisująca liczbę wygląda następująco:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Chodzi o to, że jeśli mamy do pomnożenia np. 45,4 * 2,015 to wykonujemy mnożenie dwóch liczb całkowitych 454*2015 = 914810 i znając ilość cyfr po przecinku 1 i 3 obliczamy pozycję przecinka okrężną drogą, bo najpierw część stała to 914810/(10^1*10*3) = 914810/10000 = 91 - dzielenie całkowite, a potem część ułamkowa 914810%10000=4810 co po połączeniu daje 91,4810. Sprawa komplikuje się gdy zamieniamy część ułamkową na ciąg znaków, bo jeśli w 2,015 część ułamkowa wynosi 015 to po zamianie mamy 15 i trzeba dodać to zero.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2013, o 11:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 mar 2013
Posty: 236
Lokalizacja: Warszawa
Pomógł: 5

fajny pomysł, jak w "blue pill" z tym adc. Napewno kiedyś wykorzystam coś podobnego i wiem gdzie.

_________________
sig off ;(



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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