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



Teraz jest 19 gru 2024, o 09:04


Strefa czasowa: UTC + 1





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

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

Witam

Jestem z trakcie budowy małego woltomierza cyfrowego, chciałbym aby wynik pomiarów, był wyświetlany na wyswietlaczu LED (zestaw ATB), i tu mam do Was pytanie, w jaki sposób przerobić bibliotekę z BB ,tak aby ta pokazywała mi na wyświetlaczu (poki co) sama wartość ADC ??? :)

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 13:45 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ja napisałem sobie taka biblioteke swoja i w niej mam funkcje w ktorej mam takie dzialanie matematuczne:

cyfra1 = liczba - ((liczba/10)*10)

To dzialanie zwraca mi wartosc jednosci,

To dzialanie:

cyfra2 = liczba/10 - ((liczba/100)*10)

A to dzialanie zwraca mi dziesiatki.

Z kolejnymi liczbami czyli setkami i tysiacami robie analogicznie tak ze do każdej z 4 cyfr przypadkowywuje odpowiednią.dla niej wartosc. Działania te sa w funkcji typu void do ktorej przekazuje argument uint16_t liczba. Na tym argumencie wykonywane są działania i wdzystko pięknie dziala obojętnie jaka liczbę z zakresu od 0 do 9999 wpisze :-)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 14:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

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

za pomocą tej funkcji odczytuje wartość ADC (tak jak w BB), na LCD wszystko pieknie dziala,
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

rozumiem, że za parametr liczba, mam podstawić pomiar, tak ?

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 15:18 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Cytuj:
rozumiem, że za parametr liczba, mam podstawić pomiar, tak ?


Dokładnie tak, przeanalizuj sobie jak ta funkcyjka prosta działa. Oto całą funkcja:

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: 12 lip 2014, o 15:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

a w ten sposób,w wolnej chwili pomyslę nad tym, dzięki wielkie kolego :D

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 19:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

do petli while co muszę wstawić, żeby to wszystko ruszyło ?

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 19:22 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

W pętli while do jakiejś zmiennej zapisuj wynik pomiaru a później ta zmienna wstawiaj do funkcji ktora rozbije wynik pomiaru na 4 cyfry czyli do tej ktora Ci podalem. O ile dobrze pamiętam to w tej bibliotece z BB masz 4 zmienne cyfra do ktorych jak np wpiszesz 1 to wyświetla 1 itd wiec jak napiszesz ta funkcje to wyniki tych działań przypisuj do tych zmiennych na których biblioteka pozwala Ci operować, i tyle. W skrócie:

1) pomiar i przypisanie wyniku do zmiennej
2) wywołanie funkcji wyświetl pomiar z parametrem którym jest zmienna pomiarowa.

To wszystko ma byc w while czyli w sumie dwie linie kodu :-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 20:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Albo takie coś, bez tych dzieleń:

Mirek mnie tym kiedyś poczęstował.

tablica liczba[] to jest tablica zawierające cyfry poszczególnych pozycji wyśw.
Tutaj akurat jest dla 8 pozycji.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


tabela wzorców znakow:
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: 12 lip 2014, o 20:38 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ilu programistów tyle sposobów (chodź ja za programistę sie nie uważam :lol: ) ale pewnie Twoj sposob lepszy ;-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Nie wiem czy lepszy, ale przy większej ilości pozycji dziesiętnych chyba wygodniejszy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

dzięki koledzy, wszystko sie przyda :D

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2014, o 21:42 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

sq8dsr napisał(a):
Nie wiem czy lepszy, ale przy większej ilości pozycji dziesiętnych chyba wygodniejszy.


Tak, masz racje, z pewnością Twó sposób jest dużo bardziej uniwersalny i go sobie gdzieś tam w "Eclipsową szufladę" wsadze:)

D_C napisał(a):
dzięki koledzy, wszystko sie przyda


Daj znać czy działa lepiej a nie nam tu tak na sucho dziękujesz :lol:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 19:58 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

Witam
Pomysł obsługi wyświetlacza z Mirka książki jest na tyle uniwersalny i prosty że da się go totalnie przerobić na wszystko. Musisz się zastanowić jak rozwiązać problem kropki dziesiętnej na tym wyświetlaczy (7 segmentów ) Ja zrobiłem sobie tak na szybko woltomierz -prototyp na bardzo fajnym wyświetlaczy 7 segmentowym qdsp6064 (mikrusku ale mało prądu ciągnie ) i tutaj pojawia się wyświetlanie liczb zmiennoprzecinkowych w tym miejscu należ określić jaki zakres z jaką dokładnością chcemy wyświetlać. Ja zdecydowałem się na wyświetlanie tylko dziesiętne części Volta. Sprawa jest w zasadzie prosta w przypadku odczytu wartości z ADC zamień to na Volty. Potem użyj funkcji div_t divmod= div(wynik,100); (Mirek bardzo fajnie pokazał to w jednym z odcinków o ADC chyba 6a ), później z części całkowitej wylicz poszczególne cyfry (dzieląc i odejmując jak w przykładzie powyżej)i to samo zrób z częścią dziesiętną i postaw kropkę ( najlepiej do procedury przerwania dodaj zmienną która dodaje do każdej pozycji kropką nie będziesz musiał zmieniać definicji fontów). Polecam Mirka poradnik o ADC..... naprawdę fajowny.
Pozdrawiam


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 20:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 kwi 2013
Posty: 381
Lokalizacja: Łowisko
Pomógł: 32

giciors napisał(a):
Polecam Mirka poradnik o ADC..... naprawdę fajowny.

bd musial do niego wrócić :)
A w jaki sposób zapala się kropke na wyświetlaczu ?

_________________
невозможно ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 20:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

W całkiem normalny przecież w ATB na LED`owym wyświetlaczu są kropki i to nie jest 7 segment a 8 segment tak naprawdę ale kropek nigdy się nie liczy

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2014, o 21:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Jeśli używasz Mirkowej biblioteki do wyświetlacza led to w pliku d_led.h stwórz deklaracje czterech zmiennych
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


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


I teraz jeśli ustawisz zmienną np. kropka2 to na drugim wyświetlaczu zaświeci się kropka. Jeśli wyzerujesz tą zmienną to odpowiadająca jej kropka zgaśnie.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2015, o 19:24 
Offline
Użytkownik
Avatar użytkownika

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

Ja jeszcze dodam swój sposób na kropkę instrukcje wklejamy w obsługę przerwań oczywiście z biblioteki Mirka i wybieramy odpowiednią kropkę która nas interesuje według komentarzy

Kod:
//if(anoda==1) PORTB &=~SEG_DP; // kropka na 4 cywsze
//if(anoda==2) PORTB &=~SEG_DP;  //kropka na 1 cywsze
//if(anoda==4) PORTB &=~SEG_DP; // kropka na 2 cywsze
if(anoda==8) PORTB &=~SEG_DP; // kropka na 3 cywsze

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2016, o 18:17 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

Witam , przepraszam że po taki czasie ponawiam temat, ale nie mogę sobie poradzić z takim problemem. Otóż chcę uzyskać kropkę przy wyświetlaniu temperatury po 3 cyfrze. Korzystałem z obu wyżej wymienionych metod i obie mają taki sam skutek - taki że kropka się pojawia ale dodatkowo na 3 cyfrze pojawiają się głupity ( np. zamiast 4 wyświetla H). Prosił bym o pomoc.

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


------------------------ [ Dodano po: 14 minutach ]

A dobrze już wiem, zamiast 11 powinienem wpisywać ~SEG_H.

W takim razie może zapytam o drugi problem. Otóż chciałbym wyświetlać temperaturę ujęmną RÓWNIEŻ. Czyli zostawiłem sobie dodatkowo jeden wyświetlacz na znak minus.
No i postanowiłem że w tym programie co zamieściłem ponieżej zrobię sobie warunek na if(subzero).

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


Jednak znak minus wyświetla sie ciagle mimo tego , że w pokoju mam + temperaturę :D ... w sumie jak by mogło być innaczej ;p



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2016, o 20:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
A może tak ( tylko ja mam osobno #define znaku minus )
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2016, o 21:11 
Offline
Użytkownik

Dołączył(a): 05 lis 2015
Posty: 92
Pomógł: 0

Okejo, dzięki już działa . :)



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

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