PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : eeprom platzsparender beschreiben?



sephi23
20.04.2006, 14:46
habe hier ein array sagen wir mal Ar(16) as byte.
und diese sind
beispiel: 1004567893107810
wenn ich komplette Ar(a) a=1 to 16 in eeprom reinschreibe(mit writeeeprom Ar(a), adresse ), dann kommt es im eeprom so an:

adresse........ 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0000x10....... 01 00 00 04 05 06 07 08 09 03 01 00 07 08 01 00

gibt es eine möglichkeit dass ichdie daten mal zusammen ruecken kann?
also anstatte wie oben einfach so im eeprom belegen?

adresse........ 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0000x10....... 10 04 56 78 93 10 78 10

ja, normale weise hat byte auch 1 byte speicher platz^^.
ich habe erst seit 3 tagen mit bascom gespielt, also bin ganz newbie
wenn es doch so eine funktion im basecaom gibt oder jemand schon mal gedaken darueber gemacht hat, waeres cool wenn ich ein bisschen Hinweis bekommen kann :-)
danke schon mal fuer euere Hilfe.

PicNick
20.04.2006, 18:55
Da ist z.B. MAKEBCD() zuständig, der liefert gepackte Zahlen

Rage_Empire
20.04.2006, 21:46
Hallo PicNick.
Ich versteh nicht ganz, wie das mit Makebcd gehen soll. Gibt ja auch noch makedec und makeint. Wie kann man diese Befehle zum Packen und entpacken einsetzten?
Frag halt mal, weils mich auch intressiert ;-)

sephi23
21.04.2006, 10:28
hi picnick, vielen dank fuer die antwort,an sowas habe ichauch gedacht, nur weiss ich leider nicht, dass es sogar schon fertige funktione gibt^^( ](*,) )

habe naemlich noch gedacht, dass ich dannn sowas selbst machen muss

x as byte, y as byte, dim br(16) as byte

for a=1 to 16 step 2
x=a+1
y=ar(a)*10 'oder *16?
br(a)=y+ar(x)
next a

aber ich denke makebcd macht alles wesentlich leichter^^

sephi23
21.04.2006, 10:31
Hallo PicNick.
Ich versteh nicht ganz, wie das mit Makebcd gehen soll. Gibt ja auch noch makedec und makeint. Wie kann man diese Befehle zum Packen und entpacken einsetzten?
Frag halt mal, weils mich auch intressiert ;-)

soweit ich es verstanden habe, macht makebcd folgendes
wenn man 2 zahlen hat

1000 ( 8 ) und 0101(5) dann hat man normale weise 8 und 5

make bcd macht daraus 85 so wird es kompakter^^