Nastavení BYTE bascom a zápis čísla do registru

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

Nastavení BYTE bascom a zápis čísla do registru

#1 Příspěvek od michalino »

Dobrý den, prosím Vás o radu,
co znamená tento zápis:

Dim Neco(3) As Byte

Znamená to, že se do hodnoty Neco ukládají 3 Byte? Chápu zápis:

Dim Neco As Byte , ale necápu ten výše uvedený zápis.

A ještě Vás prosím o osvětlení:

Pokud chci do registru například: 0x1F v ATMEGA8 zapsat číslo 153, jak to mám prosím provést v bascomu?

Děkuji za případné rady
Uživatelský avatar
Ragnol
Příspěvky: 232
Registrován: 09 lis 2005, 00:00
Kontaktovat uživatele:

#2 Příspěvek od Ragnol »

Sleduju tvoje příspěvky tu už delší dobu a jednu otázku... Nebylo by lepší si otevřít manuál k bascomu či si koupit knížku o programování v bascomu místo těch stálejch dotazů , který tam jsou vysvětlený ?

Myslím si, že na fóru se má řešit konkretní problém a ne učit někoho základy jenom proto, že je líný/neshopný si to najít v manuálu či v jiný literatuře.
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#3 Příspěvek od michalino »

Díky za odpověd,

podívej se na ty čísla vedle témat ve fóru, kolik lidí si prohlíží dané téma...

1)
Nepiš když nechceš
2)
Čísla jsou důkazem důležitosti těchto témat a pakliže desetině lidí pomohou, je to OK
3)
podivej se na bascom a pokud jsi to tam nasel, jako ze ja ne, pak mi prosim povez kde....ja to tam opravdu nevidel, nerikam, ze to tam neni, proste to hledam a nevidim a dostavame se nyní zpět k bodu č. 1

ještě jednou díky a prosím Vás o jakýkoliv nápomocný příspěvek, pokud to sám dříve najdu, vložím vše zde, jako vždy....protože jsme na foru, že...
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#4 Příspěvek od michalino »

Zde jsem našel něco v hledaném tvaru:

Dim A(10) As Byte'create an integer
Dim C As Integer'now fill the array
For C = 1 To 10'assign array element
A(c) = C' print it
Print A(c)
Next
C = 0
A(c + 1) = 100
Print A(c + 1)
End


Možná jsem nevysvětlil správně, o co se mi přesně jedná:
Dim A(10) As Byte

jestli podobný zápis dokáže zapsat a číst, např: 10átý byte z 10 bytů...

pokud jsme u 32x 8 bitového registru, tak pro příklad použití 4 registrů jako 4 byte, mohu použít zápis napriklad:

Dim Neco(4) As Byte

a pri cteni se odkazu na :
if neco(3)=210 then led=1 .... coz mi čte treti zapsany byte, jinak řečeno čte se číslo ze třetího registru - je to tak prosím, nebo může to tak být?

Nechci po Vas uplne reseni, prosim o nasmerovani..
Návštěvník

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

1) Ragnol má pravdu.
2) Kdyby sis přečetl, jaké má Bascom datové typy a co znamená příkaz Dim a jaké má možné parametry, tak se tady tak 🤐 neptáš, což jen potvrzuje bod 1.
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#6 Příspěvek od michalino »

Ano, bod 1, ale pro Tebe, pakliže vycházíme z významu příspěvku ob ten výše...nicméně, kolikrát už jsi mi dobře poradil a nemůžu zvlášť proti Tob ě nic napsat..

pokud vycházíme z Tvé rady k DIM, pak se kaju a děkuji anonyme za navedení, hledal jsem pod input, deklaracemi, proměnnými, apod...
Jsem blb a DIM jsem věřte nevěřte neviděl....

díky anonyme, prostuduju Tvou radu....což potvrzuji Tvé potvrzení bodu 1
nekmil(nepřihlášen)

#7 Příspěvek od nekmil(nepřihlášen) »

Dim A(3) as Byte je stejné jako
DIM A1 as Byte
DIM A2 as Byte
DIM A3 as Byte
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#8 Příspěvek od michalino »

Děkuji Nekmile...

aha a potom když studuju programy a je tam v příkazech pro načítání dat z registrů příkaz: incr
Tak to znamená, že se postupně přechází na "vyšší" registr...

teď to dává smysl, děkuji Vám pánové, moc!!
nekmil(nepřihlášen)

#9 Příspěvek od nekmil(nepřihlášen) »

"Pokud chci do registru například: 0x1F v ATMEGA8 zapsat číslo 153"
Obávám se, že takovou hodnotu do toho registru nezpíšeš.
Podívej se do "Register summary" jedná se o registr EEARH a ten umožňuje měnit jen bit 0
(nepřihlášen)

#10 Příspěvek od (nepřihlášen) »

Beru zpět, &h1F je vlastně R31

!ldi r31,153

nebo

$asm
ldi r31,153
$end Asm
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 00:00

#11 Příspěvek od michalino »

Děkuji moc!!!

Prozkoumám tak jak tak ty registry a pokusím se v nich číst a psát...děkuji ještě jednou moc za čas a trpělivost!!
Odpovědět

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