glb.
Single tárolása ?
Single tárolása ?
Sziasztok ! El tudná valaki magyarázni nekem érthetően ( nem vagyok programozó, csak hobbista
), hogy hogyan kell értelmezni egy 4 byteon eltárolt single változót ? Vagyis van egy programom ami az eeprom-ba ír ki egy single változót kikapcsoláskor. A kimentett érték ellenőrzéséhez jó lenne ha tudnám, hogy hogyan kell értelmezni ( átszámítani decimálisba ) azt a négy byte-ot. Köszi előre is !
glb.
glb.
Re: Single tárolása ?
Mármint visszaalakitani single-re?glbtech írta:Sziasztok ! El tudná valaki magyarázni nekem érthetően ( nem vagyok programozó, csak hobbista), hogy hogyan kell értelmezni egy 4 byteon eltárolt single változót ?
glb.
Kód: Egész kijelölése
Dim Tarolt_single as single, temp as single
Dim single_n1 as byte, single_n2 as byte, single_n3 as byte, single_n4 as byte
Readeeprom single_n1 , 1
Readeeprom single_n2 , 2
Readeeprom single_n3 , 3
Readeeprom single_n4 , 4
Temp = single_n1 * 16777216
Tarolt_single = Tarolt_single + temp
Temp= single_n2 * 65536
Tarolt_single = Tarolt_single + temp
Temp = single_n3 * 256
Tarolt_single = Tarolt_single + temp
Tarolt_single = Tarolt_single + single_n4
A hozzászólást 2 alkalommal szerkesztették, utoljára SirLeslie 2007. június 1. péntek, 13:27-kor.
Nem erre célzok. A single a leírás szerint "Singles are stored as signed 32 bit binary numbers." tehát 4 bájton tárolja. A lényeg hogy a szoftver fut az avr-en, és néha kiírja az eeprom-ba az aktuális értéket. Ezt szeretném ellenőrizni, de ezt csak úgy tudom csinálni, hogy kiolvasom az eeprom tartalmát. Itt a megfelelő címeken látom a 4 bájtot, de nem tudom hogyan kellene visszaszámolni decimális értékre.
Hali!
Bocsi, de ez most String tárolás téma! (Csak nem találtan neki jobb helyet.)
Áruljátok már el nekem így egyforma méretű lesz a két helyfoglalás?:
Én úgy tudtam, hogy az „As String * 12” valójában 13 Bytet foglal! 12 karakter + a String záró 0!
Viszont akkor a „(12) As Byte” hely kevés lesz!
Vagy ez most, hogyan működik?

Esetleg először lefoglal nekem 12 Bytes helyet, Aztán ugyan azon kezdő címtől 12+1 Bytet a stringnek?
Így tulajdonképpen jó lenne, mert nem lógna át a következő változóba!

Bocsi, de ez most String tárolás téma! (Csak nem találtan neki jobb helyet.)
Áruljátok már el nekem így egyforma méretű lesz a két helyfoglalás?:
Kód: Egész kijelölése
' 8+3 karakter hosszú file nevek tárolására (Pont nélkül)
Dim Sddirentrynameb(12) As Byte
Dim Sddirentrynames As String * 12 At Sddirentrynameb(1) Overlay
Viszont akkor a „(12) As Byte” hely kevés lesz!
Vagy ez most, hogyan működik?
Esetleg először lefoglal nekem 12 Bytes helyet, Aztán ugyan azon kezdő címtől 12+1 Bytet a stringnek?
Így tulajdonképpen jó lenne, mert nem lógna át a következő változóba!
Az este már fáradt lehettem, mert!
A FAT32 File név tárolása 8+3=11 karakter (Mind nagybetű, és csak Angol karakterek lehetnek)
Ehhez még hozzáadom a Stringvégi + 0 , hogy a Print tudja hól a String vége.
Szóval ez belefér a 12 Byte be.
A hibás működést a kicsi vermek okozták.
Azért még mindig kérdés: Hogyan kel a Stringet Overlay-al létrehozni?
Melyik a jó? 
A FAT32 File név tárolása 8+3=11 karakter (Mind nagybetű, és csak Angol karakterek lehetnek)
Ehhez még hozzáadom a Stringvégi + 0 , hogy a Print tudja hól a String vége.
Szóval ez belefér a 12 Byte be.
A hibás működést a kicsi vermek okozták.
Azért még mindig kérdés: Hogyan kel a Stringet Overlay-al létrehozni?
Kód: Egész kijelölése
' 8+3 filenevek tárolására
Dim Sddirentrynameb(13) As Byte
Dim Sddirentrynames As String * 12 At Sddirentrynameb(1) Overlay
' 8+3 filenevek tárolására
Dim Sddirentrynameb(12) As Byte
Dim Sddirentrynames As String * 12 At Sddirentrynameb(1) Overlay
'Vagy
' 8+3 filenevek tárolására
Dim Sddirentrynames As String * 12
Dim Sddirentrynameb(13) As Byte At Sddirentrynames Overlay