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



Teraz jest 23 kwi 2024, o 13:43


Strefa czasowa: UTC + 1





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

Dołączył(a): 05 kwi 2020
Posty: 2
Pomógł: 0

Witam
Pisze program na wyświetlacz 7 segmentowy 4 cyfrowy, chce zbudować voltomierz z atmegi 32, z dokładnością 3 cyfr po przecinku
Voltomierz bedzie mierzyć w zakresie 0-5V i stąd pisze program, który będzie w zalezności od wartości pokazywał 4 cyfry na wyświetlaczu, ale mam problem z ustawieniem warunku dla 3 i 4 cyfry na wyswietlaczu.
Pierwszą i drugą łopatologicznie rozpisałem przy pomocy if i else if np. x>=1000 && x<2000 wyświetlacz pokazuje 1 itd.
Problem polega na tym, że dla 3 i 4 liczb byłoby tyle rozpisywania ze 2 dni by brakło i sięgnąłem do tablic, tylko mam problem z opisem tego w eclipsie i caly czas cos wywala, aczkolwiek koncepcja wydaje mi się dobra.
Pomógłby ktoś? Dodam ze jestem początkującym i mam tylko blue book :)
Dodaję zdjecia dla rozjaśnienia mojego problemu, mój pomysł na wykonanie tego.
ObrazekObrazekObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2020, o 17:44 
Offline
Użytkownik

Dołączył(a): 11 sty 2015
Posty: 166
Pomógł: 24

Tak to kodu chyba jeszcze nikt nie wklejał.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 kwi 2020, o 17:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Może wklej normalnie program, a nie fotki ekranu. To po pierwsze.
Po drugie chyba nie wiesz jak używa się tablic, bo co to jest: x=cyfr[] i brak średnika na końcu linii.
Po trzecie, sądząc po trzecim foto cyf3[] to tablica co najmniej 32700 elementów.
Po czwarte nie za bardzo jestem pewien koncepcji twojej - jak rozumiem: wynik pomiaru trzymasz w jakiejś zmiennej, którą chcesz wyświetlić na wyświetlaczu o 4 pozycjach. Zatem potrzebujesz funkcji konwertującej integer do tablicy ascii (wielkości 4 pozycji) i drugiej funkcji, która te ascii wyświetli na 7segmentowym wyświetlaczu. Pierwsza funkcja to chyba itoa(...), a druga bazuje na tablicy, gdzie na pozycji 0 masz kod wyśw. cyfr0, pozycji jeden cyfry 1 itd. A o ile się teraz nie pomylę to tablicę taką możesz indeksować wartością pobraną z tablicy ascii (tej z funkcji itoa) odejmując kod cyfry 0 (kod_ascii - '0').

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2020, o 12:34 
Offline
Nowy

Dołączył(a): 05 kwi 2020
Posty: 2
Pomógł: 0

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


tablicę wpisałem z ręki i napisalem taki warunek i to działa jak nalezy, tablice dla czwartej z wykorzystaniem petli dwoch petli for i tez to dziala, aczkolwiek mam problem z pamiecią RAM, brakuje jej, gdyż ta tablica jest tak duża (long int) ze juz nie miesci się a ja wpisze int to sa wartosci do 2000 a powyzej juz sie nic nie wyswietla na 4 pozycji, ktoś pomoże jak zapisać tablice do innej pamięci ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2020, o 16:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

O ile dobrze pamiętam, w bluebooku jest rozdział o multipleksowaniu. I tam Mirek bardzo fajnie pokazał, jak wyświetlać wartość na kilku wyświetlaczach - w sposób zaprezentowany tu przez kolegę auers



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2020, o 16:57 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Umieść sobie tablicę we Flashu (nawet jeśli tylko dla testów).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 kwi 2020, o 19:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

szejzi napisał(a):
ktoś pomoże jak zapisać tablice do innej pamięci ?


Po co? Korzystanie z takich tablic nie ma sensu (wg mnie). auers przecież podał rozwiązanie.

_________________
40-32:2=4!



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