logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak wyświetlić liczby BCD i DEC na LED z użyciem Atmega32 i C++?

qutrit 29 Lis 2011 15:46 2100 2
REKLAMA
  • #1 10197271
    qutrit
    Poziom 20  
    Posty: 432
    Pomógł: 33
    Ocena: 26
    Witam.
    Pewnie pytanie jakie mam nie będzie zbyt ambitne, ale nie mogę znaleźć na nie odpowiedzi. Ogólnie sprawa wygląda tak, ze mam podłączoną atmege32 do 4 wyświetlaczy LED - multipleksowanie w przerwaniu. Mam zdefiniowany plik nagłówkowy (autorstwa RAvender) z definicjami cyfr.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Czyli w main() piszę sobie przy pierwszym wyświetlaczu np. cyfra(7) i ładnie mi się ona wyświetla pozostałe wyświetlacze również ładnie wyświetlają.
    Teraz 7DEC=0111BCD i jak to się dzieje, ze jak wstawię cyfra(0b0111) również wyświetla się "7". W którym miejscu następuje dekodowanie BCD na DEC i prawidłowe odwołanie do odpowiedniego elementu tablicy cyfra[]; ?

    Zbudowałem zegar RTC na DS1302, działa prawidłowo, tylko jakoś ta rzecz nie daje mi spokoju.
  • REKLAMA
  • Pomocny post
    #2 10199476
    Szumlus
    Poziom 17  
    Posty: 124
    Pomógł: 27
    Witam,

    Nie znam tego kodu w całości z tego co widzę to tak;
    0111 bin to to samo co 7 dec.

    Cyfra 7 to tak naprawdę adres komórki w której znajduje się sekwencja bitów odpowiadająca za takie ustawienie pinów procesora aby wyświetlał cyfrę 7.

    Wydając polecenie wyświetlenia liczby X dajemy rozkaz wyświetlenia na wyświetlaczu zawartości F lash z komórki o adresie X+adres pierwszego elementu tej tablicy.

    Wyświetlanie zrealizowane jest najprawdopodobniej w przerwaniu.

    Pozdrawiam,
    Marcin
  • #3 10200035
    qutrit
    Poziom 20  
    Posty: 432
    Pomógł: 33
    Ocena: 26
    Kurcze późno już, ale nadal nie daje mi to spokoju. To jest chyba tak, że w programie mogę zadeklarować sobie np. cyfrę 7 na kilka sposobów.
    Kod: text
    Zaloguj się, aby zobaczyć kod

    i po prostu kompilator nie ważne w jakim systemie jest zapisana jest cyfra, to zawsze interpretuje ją tak samo, czyli jako 7.

    Oczywiście problem pojawi się wtedy gdy będę chciał zadeklarować np. liczbę 14.
    Kod: text
    Zaloguj się, aby zobaczyć kod


    No i to chyba oto chodziło :)
    Niby proste, ale jak się nigdy świadomie nie miało do czynienia z BCD, to tak to jest. Napisałem odpowiedź (mam nadzieję że dobrą), może komuś się przyda :)
REKLAMA