Konwersja typów w Bascom AVR

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
sanwa
-
Posty: 22
Rejestracja: 20 wrz 2005, 12:59

Konwersja typów w Bascom AVR

Post autor: sanwa » 11 cze 2006, 19:11

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

ZbeeGin

Post autor: ZbeeGin » 11 cze 2006, 19:34

Zakręciłeś problem jak słoik dżemu. Jak jest pobierana ta wartość, w postaci binarnej (INPUTBIN) czy jak z klawiatury np. 123 (INPUT)? Co ma program z tą wartością zrobić: wyświetlić przez PRINTHEX, LCD HEX(zmienna), czy może coś innego?

sanwa
-
Posty: 22
Rejestracja: 20 wrz 2005, 12:59

Post autor: sanwa » 11 cze 2006, 20:30

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

ZbeeGin

Post autor: ZbeeGin » 12 cze 2006, 16:24

Otrzymujesz 1000 i chesz wyświetlić 1000H:

Kod: Zaznacz cały

PRINT zmienna;"H"
lub

Kod: Zaznacz cały

LCD zmienna;"H"
Otrzymujesz 1000 i chcesz by stało się 4096 (czyli 1000H):

Kod: Zaznacz cały

Dim ciag As String * 6

ciag = STR(zmienna)
ciag = "&H"+ciag
PRINT HEXVAL(ciag)
Pisałem z głowy więc kompilator może mieć zastrzeżenia co do dodawania (scalania) ciągów.

sanwa
-
Posty: 22
Rejestracja: 20 wrz 2005, 12:59

Post autor: sanwa » 13 cze 2006, 17:52

Witam
Dziękuję za podpowiedź.
Pozdrawiam
Sanwa

ODPOWIEDZ