Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Zamiana liczb

szyjan
-
-
Posty:1
Rejestracja:16 paź 2004, o 10:54
Lokalizacja:Katowice
Zamiana liczb

Postautor: szyjan » 19 paź 2004, o 08:47

Jak optymalnie zamienić-rozbić zmienną z zakresu 0-99999 na 5 zmiennyc, tak aby można je było następnie wyświetlic na 5 cyfrowym wyświetlaczu LED

Guru
-
-
Posty:250
Rejestracja:30 cze 2003, o 13:26
Lokalizacja:Kraków

Postautor: Guru » 19 paź 2004, o 09:08

Wszystko w porządku, tylko aby ktoś mógł pomóc, musisz najpierw dać Sobie pomóc.
Napisz więc w jak masz kodowaną tę z zakresu 0-99999 (binarny czysty, czy też BCD). Inaczej nikt nikt nie będzie umiał pomóc.
:no: :566:

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Re: Zamiana liczb

Postautor: gawel » 20 paź 2004, o 17:44

Jak optymalnie zamienić-rozbić zmienną z zakresu 0-99999 na 5 zmiennyc, tak aby można je było następnie wyświetlic na 5 cyfrowym wyświetlaczu LED
Czyli twoim problemem jest konwersja z postaci binarnej na postać znakową. Z liczby (którą konwertujesz) obliczasz resztę z dzielenia przez 10 i dzielisz ją przez 10. Z reszty dzielenia wychodzi ci znak (pamiętaj o dodaniu do niej 30 hex) i uzyskujesz znak na wyświetlacz. Podzielona przez 10 (jako wynik dzielenia) liczba podlega identycznej operacji. Po wykonaniu wszystkich iteracji pętli uzyskujesz liczbę na wyświetlacz. Należy pamiętać, że tak uzyskana liczba znakowo jest "od tyłu" (pierwszy uzyskany znak z pierwszej iteracji jest cyfrą jednosted, następna dziesiątek itd).

Guru
-
-
Posty:250
Rejestracja:30 cze 2003, o 13:26
Lokalizacja:Kraków

Postautor: Guru » 21 paź 2004, o 08:58

Gaweł:
Z reszty dzielenia wychodzi ci znak (pamiętaj o dodaniu do niej 30 hex) i uzyskujesz znak na wyświetlacz.
szyjan:
tak aby można je było następnie wyświetlic na 5 cyfrowym wyświetlaczu LED
z tego wynika że należy konwertować (prawdopodobnie) na wyświetlacz siedmiosegmentowy LED a nie an LCD
W przypadku małych liczb 8 max 16 bitowych przeliczanych na BCD to algorytm który podałeś jest optymalny. Zakładając że maksymalna liczba to liczba 99999 w związku z tym nie zmieści się ona w 16 bitach więc trzeba zastosować algorytm polegający na przesuwaniu liczby przekształcanej uzupełnianiu do 3 wyniku. Żeby o tym dokładniej napisać musiał bym zerknąć do literatury.
A dopiero potem obrabiać wynik BCD na wyświetlacz siedmiosegmentowy.

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 21 paź 2004, o 09:04

Jeżeli to ma być na wyświetlacz LED siedmiosegmentowy, to jest jeszcze prościej. Z reszty z dzielenia wychodzi liczba od 0 do 9 i niech ona posłuży jako indeks do tablicy przekodowań. Elementy tej tablicy powinny zawierać takie dane, aby poprawnie była wyświetlona liczba na segmentach wyświetlacza.
Istnieje ewentualnie algorytm (tak jak mówi Guru) do konwersji na BCD. Dysponuję odpowiednim PDF'em opisującym algorytm. Jak kolega szyjan jest zainteresowany, to skontaktuje się ze mną, mój e-mail an177@poczta.fm

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 53 gości