Vložit hodnotu 255, aby vypaal &HFF BASCOM + restart ATM

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

Vložit hodnotu 255, aby vypaal &HFF BASCOM + restart ATM

#1 Příspěvek od michalino »

Dobrý den, prosím Vás o pomoc,

pokud mám ve zjednodušené podobě tento program:

input a
data(1) , &HFF

když vložiím hodnotu a=254, jak prosím tuto hodnotu dostat za ten prefix &H, tedy

input a vlozim 255
data(1), &H(a) zde aby se hodnota a prevedla na format &HFF a aby s
tim program mohl dal pracovat, jak to prosim mam
zapsat?

zatim zkousim takto:
Dim a As String * 8
Dim Hex As Byte

Hex = 255
a = Bin(hex)

a dostanu zapis v podobe jednicek a nul, ale jak ho dostat do podoby:

data(1), &HFF
?

Prosím o pomoc, doufam, ze je to smysluplny dotaz...
hezky vikend všem..
Naposledy upravil(a) michalino dne 21 zář 2009, 19:50, celkem upraveno 1 x.
Jenda_KL
Příspěvky: 1173
Registrován: 10 zář 2008, 00:00
Bydliště: Kadaň
Kontaktovat uživatele:

#2 Příspěvek od Jenda_KL »

To jako 255(d)=FF(h) a kolik "h" je 254(d) ?

Jestli jsem to dobře pochopil, tak na převod mezi číselnými soustavami pokud to nedá hlava používám nejraši klalkulačku, tu na pc ji musíš přepnout do rozšířeného režimu, aby šlo konvertovat DEC(11),HEX(0B) nebo BIN(00001011).
Pokud je to ta widlowsová tak přepnout na "vědecká"

Jinak:
DEC - základ je 10 a je to ta co běžně používáš, tzn: 0...9
HEX - základ je 16, tzn: 0...8,9,A,B...F
BIN - základ je 2, tzn: 0,1

(HEX = DEC)
F = 15
FF = 15xzáklad +15 = 255
FE = 15xzáklad +14 = 254
1F = 1x16+15 = 31
20 = 2x16+0 = 32
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#3 Příspěvek od popopepe »

michalino píše:Dobrý den, prosím Vás o pomoc,

pokud mám ve zjednodušené podobě tento program:

input a
data(1) , &HFF

když vložiím hodnotu a=254, jak prosím tuto hodnotu dostat za ten prefix &H, tedy

input a vlozim 255
data(1), &H(a) zde aby se hodnota a prevedla na format &HFF a aby s
tim program mohl dal pracovat, jak to prosim mam
zapsat?

zatim zkousim takto:
Dim a As String * 8
Dim Hex As Byte

Hex = 255
a = Bin(hex)

a dostanu zapis v podobe jednicek a nul, ale jak ho dostat do podoby:

data(1), &HFF
?

Prosím o pomoc, doufam, ze je to smysluplny dotaz...
hezky vikend všem..


Ahoj Michalino, nějak sice nechápu, k čemu je to dobré, ale to neva.. :-)
Co zkusit manuál, language fundamentals, oddíl arrays?
Popo
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#4 Příspěvek od michalino »

Popopepe a Jendo,

děkuji za Vaše příspěvky a tímto pomoc. Prostuduju, co je tam napsané a vyzkouším. Teď prověřuju bascom, příkaz po příkazu a zkouším pokusy.

Narazil jsem na věc, že jde uložit hodnota natrvalo do paměti nebo pružně do registrů, což se může hodit a jsou tady různé linky (ten bascomácký neřešte) zkouším do všech něco zapsat a ze všech něco přečíst, teda..budu se pokoušet:

k tomuto vláknu pár kousků:
http://www.grote.net/bascom/msg20434.html
ukázka bascomu
http://avrhelp.mcselec.com/index.html
další hrátky s hex číslama:
http://www.davidswinscoe.com/electronic ... OM-AVR.pdf

zkráceně snažím se dostat více do jádra...
spíše se to nedaří, než daří...ale pustil jsem se do praxe, jelikož té teorie je hodně a jak jste psali, musím zkoušet....jsem už z toho trochu
volako zmetený....

ještě jednou děkuju, teď mám jiný divný problém,

samovolný restart atmegy při přerušení INT0 ... nevíte, jestli se takový restart atmegy od INT0 = PIND.2 dá prosím tento restart zakázat?

děkuji
Návštěvník

#5 Příspěvek od Návštěvník »

Nedá se to zakázat, protože tam nic takového není. Když BASCOMu rozm*dáš registry a kdoví co ještě, tak se nediv, že se ti to restartuje.
Uživatelský avatar
popopepe
Příspěvky: 553
Registrován: 26 říj 2005, 00:00

#6 Příspěvek od popopepe »

Anonym píše:Nedá se to zakázat, protože tam nic takového není. Když BASCOMu rozm*dáš registry a kdoví co ještě, tak se nediv, že se ti to restartuje.

Má pravdu předsedo :-), ten anonym.

INT0 je prostě jedno z mnoha přerušení, a pokud jsi nějak nenakopal program, není proč by se ATMEGA restartovala. Prostě jenom po INT0 odskočí na proceduru, kterou jsi při INT0 definoval. Pravděpodobně jsi povolil globálně přerušení, a pak jsi provedl INT0, a nemáš definováno, co to má udělat. Takže asi program skočí na začátek, protože poslední instrukce z INT0 je return, a proto ti to možná připadá jako restart. Zkus si nadefinovat nějakou obsluhu toho přerušení a uvidíš, zda je to tím.

Popo
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“