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

Konwersja BYTE na wartość HEX w Bascom AVR - jak to zrobić?

sanwa 11 Cze 2006 20:12 2529 4
REKLAMA
  • #1 2720278
    sanwa
    Poziom 14  
    Posty: 171
    Pomógł: 7
    Ocena: 10
    Witam
    Mam takie pytanie. Jak w Bascom AVR przekonwertować zmienną(BYTE) na odpowiadającą jej wartość dziesiętną, tak jakby wartość tej zmiennej była zapisana jako HEX? Czyli jak mając zmienną "spowodować" aby była ona(jej wartość) "uważana" przez program za wartość w kodzie heksadecymalnym, a nie dziesiętnym? Zmienna to jest odczytywana z zewnątrz, jej wartość zmienia się.
    Z góry dzięki za odpowiedzi.
    Pozdrawiam
    Sanwa
  • REKLAMA
  • Pomocny post
    #2 2720505
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Witam.
    Trochę to mętne , ale spróbuję ci jakoś pomóc.
    Każda zmienna jest przechowywana w pamięci w postaci dziesiętnej.
    Możesz ją zadeklarować jako kod szesnastkowy np. :
    zmienna= &HFF00
    

    Ale i tak w pamięci zostanie zapisana jako konkretna wartość.
    Nie wiem do czego potrzebujesz, ale domyślam się że chcesz to wyświetlić jako wartość szesnastkową.
    Wartości szesnastkowe są traktowane jako wartości typu STRING, czyli tekst.
    Przed wyświetleniem zmiennej dziesiętnej musisz ją zamienić na string.
    Służy do tego funkcja HEX :)
    Przykłady masz w helpie BASCOM-a.

    Może opisz dokładniej swój problem, jeżeli nie pomogło ci to co napisałem.

    Pozdrawiam.
  • REKLAMA
  • #3 2720595
    sanwa
    Poziom 14  
    Posty: 171
    Pomógł: 7
    Ocena: 10
    Witam
    Dziękuję za szybką odpowiedź.
    To może opiszę dokładnie.
    W programie mam zadeklarowaną zmienną(INTEGER).
    W toku działania programu z zewnątrz zostaje jej nadana wartość dziesiętna na przykład 1000 (tysiąc). Ja chcę, aby została ona potraktowana jako &H1000, czyli jako wartość podana w kodzie heksadecymalnym (rzeczywiście , potrzebuję tego do wyświetlania), czyli dziesiętnie 4096. Pytanie brzmi: jak zmienną przekonwertować w ten sposób. Czy istnieje w Bascom AVR polecenie konwertujące zmienna HEX do zmiennej dziesiętnej?
    Zapis '&Hnazwazmiennej' jest błędny.
    Z góry dzięki za odpowiedzi.
    Pozdrawiam
    Sanwa
  • REKLAMA
  • Pomocny post
    #4 2720766
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Moja mowa będzie krótka ...
    
    Dim Zm As String * 10 , X As Integer
    X = 2000     'dec X=2000 , hex X=7D0
    Zm = Str(x) ' Zm="2000"
    X = Hexval(zm) 'dec X=8192 hex X=2000
    

    Czy o to Ci chodzi :?:

    Piotrek
    PS
    Ale uważaj , bo dla dec X>7999 wyjdą cuda :D
  • #5 2726033
    sanwa
    Poziom 14  
    Posty: 171
    Pomógł: 7
    Ocena: 10
    Witam
    Przepraszam, że dopiero dzisiaj. "Kliknąłem" już gdzie trzeba :):). Dodatkowo, do "zumek": dziękuję, tak to jest dokładnie to o co pytałem.
    Pozdrawiam
    Sanwa
REKLAMA