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
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
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
Re: Zamiana liczb
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).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
Gaweł:
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.
szyjan:Z reszty dzielenia wychodzi ci znak (pamiętaj o dodaniu do niej 30 hex) i uzyskujesz znak na wyświetlacz.
z tego wynika że należy konwertować (prawdopodobnie) na wyświetlacz siedmiosegmentowy LED a nie an LCDtak aby można je było następnie wyświetlic na 5 cyfrowym wyświetlaczu LED
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.
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
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
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 53 gości