változók konstansok meghatározások stb..
változók konstansok meghatározások stb..
Ha ezt irom pl:
zero=0
zold=255
piros=255
Cimu1ls0.0 = Zold.7
Cimu1ls0.1 = Zero
Cimu1ls0.2 = Piros.0
Cimu1ls0.3 = Zero
Cimu1ls0.4 = Zold.0
Cimu1ls0.5 = Zero
Cimu1ls0.6 = Piros.1
Cimu1ls0.7 = Zero
ami ugye négy változó és a barnával szedett rész egy meghatározás arra
melyik byte melyik bitjét hova akarom tölteni...
a kérdés hogy lehet ezt statikussá tenni const ként ugye ez nem jó mivel
illagal karaktereket tartalmaz
subrutin ként is jó pofa de van e még más formája?
pl még a config részben leirva, hogy ez csak egyszer fusson le
és ha hivatkozok a Cimu1ls0 ra akkor azzal tisztában legyen hogy az három bytbe-ból áll tulajdonképpen.
zero=0
zold=255
piros=255
Cimu1ls0.0 = Zold.7
Cimu1ls0.1 = Zero
Cimu1ls0.2 = Piros.0
Cimu1ls0.3 = Zero
Cimu1ls0.4 = Zold.0
Cimu1ls0.5 = Zero
Cimu1ls0.6 = Piros.1
Cimu1ls0.7 = Zero
ami ugye négy változó és a barnával szedett rész egy meghatározás arra
melyik byte melyik bitjét hova akarom tölteni...
a kérdés hogy lehet ezt statikussá tenni const ként ugye ez nem jó mivel
illagal karaktereket tartalmaz
subrutin ként is jó pofa de van e még más formája?
pl még a config részben leirva, hogy ez csak egyszer fusson le
és ha hivatkozok a Cimu1ls0 ra akkor azzal tisztában legyen hogy az három bytbe-ból áll tulajdonképpen.
dim zero as bit
dim zold as byte
dim piros as byte
cimu1ls0 as byte
(természetesen csak nem akartam teljes egészében leirni)
zero=0
zold=255
piros=255
Cimu1ls0.0 alias Zold.7
Cimu1ls0.1 alias Zero
Cimu1ls0.2 alias Piros.0
Cimu1ls0.3 alias Zero
Cimu1ls0.4 alias Zold.0
Cimu1ls0.5 alias Zero
Cimu1ls0.6 alias Piros.1
Cimu1ls0.7 alias Zero
(És ha (tehát az ALIAS-ok után)
zold = 10000010
piros =11000000
(akkor Cimu1ls0)
print Cimu1ls0
Result:10101010
mert ha igy van akkor az nagyon kafa
félek ez egy memóriaigényes dolog lesz
dim zold as byte
dim piros as byte
cimu1ls0 as byte
(természetesen csak nem akartam teljes egészében leirni)
zero=0
zold=255
piros=255
Cimu1ls0.0 alias Zold.7
Cimu1ls0.1 alias Zero
Cimu1ls0.2 alias Piros.0
Cimu1ls0.3 alias Zero
Cimu1ls0.4 alias Zold.0
Cimu1ls0.5 alias Zero
Cimu1ls0.6 alias Piros.1
Cimu1ls0.7 alias Zero
(És ha (tehát az ALIAS-ok után)
zold = 10000010
piros =11000000
(akkor Cimu1ls0)
print Cimu1ls0
Result:10101010
mert ha igy van akkor az nagyon kafa
félek ez egy memóriaigényes dolog lesz
Többszörös alias nem lehet....
dim zero as bit
dim zold as byte
dim piros as byte
cimu1ls0 as byte
zero=0
zold=255
piros=255
Cimu1ls0.0 alias Zold.7
Cimu1ls0.1 alias Zero '<---
Cimu1ls0.2 alias Piros.0
Cimu1ls0.3 alias Zero '<---
Cimu1ls0.4 alias Zold.0
Cimu1ls0.5 alias Zero '<---
Cimu1ls0.6 alias Piros.1
Cimu1ls0.7 alias Zero '<---
<--- Ilyen NINCS. 2 féle változó AZONOS aliassal nem lehet. ha a zeronak értéket adsz akkor minek mi lesz?????
(És ha (tehát az ALIAS-ok után)
zold = 10000010
piros =11000000
(akkor Cimu1ls0)
print Cimu1ls0
Result:10101010
mert ha igy van akkor az nagyon kafa
félek ez egy memóriaigényes dolog lesz
>>>>Nem.
Nézd meg inkább a OR/AND utasításokat.
&B01010111 AND &B00000000 = &B00000000
&B01010111 AND &B11111111 = &B01010111
&B01010111 AND &B01010101 = &B01010101
AND esetén, ha mindkét helyiérték 1, akkor 1. Ha legalábbaz egyik 0, akkor 0!
OR esetén, ha legalább egyik helyiérték 1, akkor 1. Ha mindkét helyiérték 0, akkor 0!
Ez nem jó?
dim zero as bit
dim zold as byte
dim piros as byte
cimu1ls0 as byte
zero=0
zold=255
piros=255
Cimu1ls0.0 alias Zold.7
Cimu1ls0.1 alias Zero '<---
Cimu1ls0.2 alias Piros.0
Cimu1ls0.3 alias Zero '<---
Cimu1ls0.4 alias Zold.0
Cimu1ls0.5 alias Zero '<---
Cimu1ls0.6 alias Piros.1
Cimu1ls0.7 alias Zero '<---
<--- Ilyen NINCS. 2 féle változó AZONOS aliassal nem lehet. ha a zeronak értéket adsz akkor minek mi lesz?????
(És ha (tehát az ALIAS-ok után)
zold = 10000010
piros =11000000
(akkor Cimu1ls0)
print Cimu1ls0
Result:10101010
mert ha igy van akkor az nagyon kafa
félek ez egy memóriaigényes dolog lesz
>>>>Nem.
Nézd meg inkább a OR/AND utasításokat.
&B01010111 AND &B00000000 = &B00000000
&B01010111 AND &B11111111 = &B01010111
&B01010111 AND &B01010101 = &B01010101
AND esetén, ha mindkét helyiérték 1, akkor 1. Ha legalábbaz egyik 0, akkor 0!
OR esetén, ha legalább egyik helyiérték 1, akkor 1. Ha mindkét helyiérték 0, akkor 0!
Ez nem jó?
http://www.tavir.hu - a gazda 
zero az átláthatóság miatt került bele
bár azt jó tudni hogy több ALIAS-a nem lehet egy változónak
ez a részlet egy i2c buszon üldögélő négy led dimmer ic
kimeneteit rendezi egy tömbbe(változóba)
azért is nem irtam portot
mert igy 4 icnél két byte-al le lehet irni 32 led állását
(a cimzéseket és küldéseket alapvetőleg csinálja a program még
akkor is ha nincs küldve értelmes adat (pl 1 ))
de igy csak 2 bytot kell olvasni
(bocsánat két két szemben lévő ic-nek egy ugyanazon a funkciója)
csak a jövőbeni szofware upgrade miatt került igy bele hogy a hardware
-en már ne keljen változtatni még a panel többet tud (külön külön villogás)
Az AND OR kapukat azért vágom de vajon ezeketből is lehet (azaz egy számítási müveletet) konstans vagy egyéb statikus dolgot csinálni?
különben mintha azért volna valamilyen tipuskonverzió mivel a 0-át hajlandó bytekét is kezelni akkor is ha bit nek van degradálva
persze visszafelé ez úgy dereng hogy nem müködik
vagy tévedek?
bocs most kevereg bennem a bascom basic meg a visual studio...
vacak dolgo több nyelvet egyszerre tanulni de arra jöttem rá hogy céljaim eléréséhez sajnos szükségem van rá
(készülök egy rettenetes nagy projektre csak még kevés vagyok hozzá érzem)
bár azt jó tudni hogy több ALIAS-a nem lehet egy változónak
ez a részlet egy i2c buszon üldögélő négy led dimmer ic
kimeneteit rendezi egy tömbbe(változóba)
azért is nem irtam portot
mert igy 4 icnél két byte-al le lehet irni 32 led állását
(a cimzéseket és küldéseket alapvetőleg csinálja a program még
akkor is ha nincs küldve értelmes adat (pl 1 ))
de igy csak 2 bytot kell olvasni
(bocsánat két két szemben lévő ic-nek egy ugyanazon a funkciója)
csak a jövőbeni szofware upgrade miatt került igy bele hogy a hardware
-en már ne keljen változtatni még a panel többet tud (külön külön villogás)
Az AND OR kapukat azért vágom de vajon ezeketből is lehet (azaz egy számítási müveletet) konstans vagy egyéb statikus dolgot csinálni?
különben mintha azért volna valamilyen tipuskonverzió mivel a 0-át hajlandó bytekét is kezelni akkor is ha bit nek van degradálva
persze visszafelé ez úgy dereng hogy nem müködik
vagy tévedek?
bocs most kevereg bennem a bascom basic meg a visual studio...
vacak dolgo több nyelvet egyszerre tanulni de arra jöttem rá hogy céljaim eléréséhez sajnos szükségem van rá
(készülök egy rettenetes nagy projektre csak még kevés vagyok hozzá érzem)
Típuskonverzió:
A as bit
B as Byte
A=1
B=255
Ha a Bascom:
A=B utasítást talál: HIBA
B=A utasítást talál B=1.
Azaz nagyobb felveheti a kisebbik értékét (nem mindíg szerencsés, azt hiszem LONG esetén fejreállhatsz).
Word esetén az alsó-felső a High(word) ás a Low(word) adhatja ki a alsó-felső byte-ket.
4byte esetén: LOWW, HIGHW (wordként bontja)
Nálad tipp:
A as Long at overlay &H60 '32 bit letárolása a 60-as SRAM címtől
V1 as byte at overlay &H60 'legmagasabb byte
V2 as byte at overlay &H61 'legmagasabb előtti byte
V3 as byte at overlay &H62
V4 as byte at overlay &H63 'legalacsonyabb byte
W1 as word at overlay &h60 'ugyanez WORDre
W2 as word at overlay &h62 'ugyanez WORDre
A Bascom szimulátorban ellenőrizheted:)
AND és OR nem kapu, hanem logikai utasítás!
Logikai ÉS illetve logikai VAGY. bitmanipulációra jó:). Csak tippnek írtam. hátha kellhet a programban. Én használom....
A 0 is használható byteértékként! A byte értéke 0...255 lehet.
Nem a stringgel kevered? Ott a stringláncban NEM lehet 0, mert az a stringlánc vége karakter!
A as bit
B as Byte
A=1
B=255
Ha a Bascom:
A=B utasítást talál: HIBA
B=A utasítást talál B=1.
Azaz nagyobb felveheti a kisebbik értékét (nem mindíg szerencsés, azt hiszem LONG esetén fejreállhatsz).
Word esetén az alsó-felső a High(word) ás a Low(word) adhatja ki a alsó-felső byte-ket.
4byte esetén: LOWW, HIGHW (wordként bontja)
Nálad tipp:
A as Long at overlay &H60 '32 bit letárolása a 60-as SRAM címtől
V1 as byte at overlay &H60 'legmagasabb byte
V2 as byte at overlay &H61 'legmagasabb előtti byte
V3 as byte at overlay &H62
V4 as byte at overlay &H63 'legalacsonyabb byte
W1 as word at overlay &h60 'ugyanez WORDre
W2 as word at overlay &h62 'ugyanez WORDre
A Bascom szimulátorban ellenőrizheted:)
AND és OR nem kapu, hanem logikai utasítás!
Logikai ÉS illetve logikai VAGY. bitmanipulációra jó:). Csak tippnek írtam. hátha kellhet a programban. Én használom....
A 0 is használható byteértékként! A byte értéke 0...255 lehet.
Nem a stringgel kevered? Ott a stringláncban NEM lehet 0, mert az a stringlánc vége karakter!
http://www.tavir.hu - a gazda 
tehát direkt módon történő elhelyezése a változóknak egymásralapozást
lehet elérni szuper!
látod mondtam én neked hogy a nyelv parancsainak ismerete szinte elsődlegesen fontos ( ha ismered az építőkockákat tudod hogy lehet várat építeni belőle) fogalmam sem volt arról hogy a változókat igy is el lehet
tárolni (legalább nem halok meg hülyén
)
a kapukkal kapcsolatban nem szeretnék vitábaszállni hogy a tyúk volt e elöbb vagy a tojás
(de tény hogy a logikai 1 a tulajdonképpeni magas jelszintnek felel meg)
kapu vagy utasítás mindegy...értetted mit szeretnék ez a lényeg
ezeket majd bevetem ahol lehet köszönöm
lehet elérni szuper!
látod mondtam én neked hogy a nyelv parancsainak ismerete szinte elsődlegesen fontos ( ha ismered az építőkockákat tudod hogy lehet várat építeni belőle) fogalmam sem volt arról hogy a változókat igy is el lehet
tárolni (legalább nem halok meg hülyén
a kapukkal kapcsolatban nem szeretnék vitábaszállni hogy a tyúk volt e elöbb vagy a tojás
(de tény hogy a logikai 1 a tulajdonképpeni magas jelszintnek felel meg)
kapu vagy utasítás mindegy...értetted mit szeretnék ez a lényeg
ezeket majd bevetem ahol lehet köszönöm
Sziasztok!
rs485-öt programozok és elég érdekes dolgot tapasztalok a soros kommunikáció során.
Már sok-sok napja debugolom de nem tudom mi történik.
A lényeget megpróbálom összefoglelni.
Van kát változó:
A master egység ben
Az adatokat urxc megszakításban fűzöm össze.
Nos olyat tapasztalok, hogy ahogy jönek az adatok, egyszercsak a Stationid változó 0 majd 2 lesz, master változó pedig 20.
"Master" változóra még csak nem is hivatkozom!
Sehol nem módosítom a változókat. Hozzáférések az alábbi helyeken történnek.
egy "sendmessage" subrutinban
urxc megszakításban:
Ami egy icipici "kapaszkodó" hogy jelenleg csak egy slave egységgel kommunikálok aminek a címe mit ad isten 2.
Teszteltem, "Stationid" a helyes értékről a slave egység címére változik.
Egyszerüen nem értem! áááááááááá!
Valaki mentsen meg pls...
rs485-öt programozok és elég érdekes dolgot tapasztalok a soros kommunikáció során.
Már sok-sok napja debugolom de nem tudom mi történik.
A lényeget megpróbálom összefoglelni.
Kód: Egész kijelölése
$regfile = "m32def.dat"
$crystal = 14745600
$hwstack = 32
$swstack = 32
$framesize = 32Kód: Egész kijelölése
Dim Stationid As Byte
Stationid = 1
Dim Master As Byte
Master = 128Kód: Egész kijelölése
Stationid=MasterNos olyat tapasztalok, hogy ahogy jönek az adatok, egyszercsak a Stationid változó 0 majd 2 lesz, master változó pedig 20.
"Master" változóra még csak nem is hivatkozom!
Sehol nem módosítom a változókat. Hozzáférések az alábbi helyeken történnek.
egy "sendmessage" subrutinban
Kód: Egész kijelölése
If _cimzett <> Stationid Then ...
...
Crc8_buffer(2) = Stationid
...Kód: Egész kijelölése
...
If _rx_buffer(1) = Stationid Then ...
...Teszteltem, "Stationid" a helyes értékről a slave egység címére változik.
Egyszerüen nem értem! áááááááááá!
Valaki mentsen meg pls...
$regfile = "m32def.dat"
$crystal = 14745600
$hwstack = 32
$swstack = 32
$framesize = 32
[/code]
helyett
javasolt.
ha nem használod ki teljesen a SRAMot, akkor a 64 helyett 128-t írj...
$crystal = 14745600
$hwstack = 32
$swstack = 32
$framesize = 32
[/code]
helyett
Kód: Egész kijelölése
$regfile = "m32def.dat"
$crystal = 14745600
$hwstack = 64
$swstack = 64
$framesize = 64
ha nem használod ki teljesen a SRAMot, akkor a 64 helyett 128-t írj...