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



Teraz jest 27 kwi 2024, o 00:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 5 paź 2018, o 21:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

Witam wszystkich.

Postanowiłem sobie napisać własną, na moje potrzeby bibliotekę dla 8x7seg z MAX7219. Wszystko szło zgodnie z założeniami, do czasu kiedy zabrałem się za rozbijanie liczby na pojedyncze cyfry. Maksymalna wartość to 99999999.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dla liczby 12345678 cyfry dig7-dig4, czyli 1234 sa obliczane prawidłowo, problem jest przy dig3 ktora wynos 71... nie wiem już co robię nie tak, i gdzie popełniam błąd.

Pomocy!!!
Pozdrawiam ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2018, o 06:43 
Offline
Nowy

Dołączył(a): 10 cze 2014
Posty: 20
Pomógł: 1

Witam
Nie chcę się mądrować, ale takich żeczy się tak nie robi, chyba że dla sportu. Próbowałeś dzielić przez 10 i resztę z dzielenia badać?
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2018, o 08:34 
Offline
Użytkownik

Dołączył(a): 07 gru 2013
Posty: 90
Pomógł: 6

Jedyne co mi przychodzi na myśl o wyświetlaniu liczby to rozbicie na pojedyncze znaki poprzez dzielenie i reszta z dzielenia. Np:dla liczby do 934
1 - sprawdzasz czy liczba jest większa lub równa 100 i mniejsza od 1000
2 - dzielisz przez 100 w wyniku otrzymujesz 9 (cyfra/100)
3 - resztę z dzielenia przez 100 dzielisz przez 10 w wyniku cyfra 3 ((cyfra%100)/10)
4 - reszta dzielenia przez 100 znowu reszta dzielenia przez 10 i otrzymujesz ostatnia cyfre 4 ((cyfra%100)%10)
poniżej trochę kodu, rozbicia liczby uint16_t. W twoim przypadku trochę będziesz miał zabawy z dużymi liczbami ( kiedyś próbowałem w ten sposób wyświetlić uint32_t ), ale temat do przeskoczenia.

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: 6 paź 2018, o 09:12 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27226
Lokalizacja: Szczecin
Pomógł: 1041

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


i masz w tablicy wszystkie cyfry - wyświetlasz je jak chcesz

------------------------ [ Dodano po: 1 minucie ]

Panowie w Bluebooku pokazałem taki sposób z tym dzieleniem w KAŻDEJ linii no TYLKO po to, żeby zrozumieć jak to działa, jak do tego podchodzić na procku, ale teraz czas na programowanie, pisanie kodu ... tak jak np ten który pokazałem, choć to też tylko przykład - można napisać w ogóle uniwersalną funkcję dla dowolnie długiej liczby.


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2018, o 09:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

Absolutna racja, że podejście nie jest zbyt dobre i jest wiele lepszych możliwości, zastanawiało mnie skąd było to 71. Ostatecznie użyłem funkcji ltoa ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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