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

Liczba jako bajt - jak zapisać do SRAM/Flash w postaci ASCII

Bartoneczek 15 Paź 2011 19:23 1335 9
REKLAMA
  • #1 10030877
    Bartoneczek
    Poziom 10  
    Witam,

    Od dłuższego czasu głowię się nad pewną sprawą i nic nie mogę wymyśleć. Posiadam pewien bajt reprezentujący pewną liczbę, np., 00011001 - liczba 25. W jaki sposób zapisać ten bajt do pamięci SRAM/Flash tak żeby podzielić go na dwa bajty: cyfrę dwa i pięć, w dodatku w postaci ASCII?

    Z góry dzięki za pomoc,
    pozdrawiam.
  • REKLAMA
  • #2 10030960
    alagner
    Poziom 26  
    nie wiem na jakim procku to robisz. Jeżeli masz możliwość podzielenia go z resztą przez 10 to dostaniesz wtedy wynik w postaci ilorazu i reszty, czyli 2 i 5. Potem do każdego z nich dodajesz 30h i masz ASCII
  • REKLAMA
  • #3 10030989
    Bartoneczek
    Poziom 10  
    Korzystam z ATMega8. Niestety nie mam pojęcia jak zrealizować dzielenie z resztą.
  • #5 10031044
    alagner
    Poziom 26  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    na szybko w C, nie testowałem, ale ogólny zamysł jest raczej ok, za godzinkę-dwie wrócę do domu i sprawdzę czy chodzi.

    Pozdrawiam.
  • REKLAMA
  • #6 10031052
    Bartoneczek
    Poziom 10  
    No tak, zapomniałem o kolejnej istotnej rzeczy. Oczywiście piszę w assemblerze, gdybym pisał C to wiadomo że nie byłoby problemu. ;) Znalazłem jedynie funkcję zwykłego dzielenia na oficjalnej stronie atmela, ale dzielenia modulo nie ma.
  • #7 10031210
    Mundi1970
    Poziom 24  
    To może wykorzystać kodowanie liczb BCD, AVR204: BCD Arithmetics. Tu znajdziesz dwie funkcje bin2BCD16 i bin2BCD8. Konwersja do bcd, w jednym bajcie będą dwie cyfry dziesiętne, rozdzielasz na dwa bajty i dodajesz 48 do każdej cyfry i masz kod ascii.
  • REKLAMA
  • #8 10031226
    Konto nie istnieje
    Konto nie istnieje  
  • #9 10031778
    Bartoneczek
    Poziom 10  
    Obydwie propozycje rozwiązują mój problem. Szczerze mówiąc nie miałem pojęcia o istnieniu BCD. Dzięki wielkie Panowie za pomoc i zainteresowanie tematem! :)
  • #10 10161975
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA