Hallo Leute,
danke für die schnelle Hilfe! SUPER!!
Habe die Methode nach phyton_rocks und rofo88 probiert.
Mfg. dl1akp
Andersrum, DerMaddin ...
Geht das mit dem Overlaydimensionieren nicht in C? Das geht nämlich noch schneller als das Shiften
Meine Meinung: Bascom ist DAS BESTE (wenn man zu gegebener Zeit hier und da ein wenig Assembler einstreut, man wie ich C-Legastheniker ist und Basic schon mit der Muttermilch kurz nach Mitte des letzten Jahrhunderts eingesogen hat *g*)
Das mit Overlay nutze ich häufig und spart einem einiges an Arbeit. Das es aber auch mit AT [Variablenname] geht, das war mir neu. Dieses Forum ist wirklich unbezahlbar.
Mein Hexapod im Detail auf www.vreal.de
Hallo Leute,
danke für die schnelle Hilfe! SUPER!!
Habe die Methode nach phyton_rocks und rofo88 probiert.
Mfg. dl1akp
Hallo Der Maddin!Zitat von DerMaddin
Falls es dich interessiert. In Bascom nimmt man dafür den Befehl SHIFT. Aber das direkte Schreiben in den Speicher mit OVERLAY ist schneller, da nichts verschoben oder berechnet werden muss.
mfg
Gerold
:-)
@All,
ich nutze auch die Overlayfunktion aber nur aus "Fremndcode" und biun noch nicht so richtig durchgestiegen. Kann mir jemand mal Overlay und das AT erklären?
und zu MeckPommER: Damit hast Du wohl sehr recht: das Forum ist wirklich unbezahlbar und die Leute die einem helfen ersteinma....
MAT
@mat-sche
ok ich versuche es mal
Dim X as Word-> belegt im RAM 2 Byte um die Variable x da zu speichern ( 2 Byte weils ne Word-Variable ist, wenn da Long steht sinds 4 Byte und bei nem String noch mehr | die Position wo das im RAM steht ist nicht definiert und wird vom Compiler festgelegt)
Dim X as Word at $60-> macht das selbe wie oben nur das der Speicherplatz im RAM festgelegt ist (fängt halt bei $60 an) und nicht mehr vom Compiler bestimmt wird
Dim y As Byte At X Overlay-> legt fest das auf dem Speicherplatz von X (2 Byte) auch noch Y liegt (1 Byte) somit ist es möglich von der Word-Variable nur ein Byte manipolieren
Also das Overlay sagt aus das der Speicherplatz mehrfach belegt ist und das at an welcher Stelle der Speicherplatz ist
hallo Rofo,
danke für Deine, mir verständliche, Erläuterungg!
Jetzt kann ich mir auch einige Sachen erklären!
MAT
einfach die beiden bytes in eine wordvariable(adresse vorher ausmachen) und reinpoken, fertig.
Hallo sechsrad!Zitat von sechsrad
Du meinst mit VARPTR http://avrhelp.mcselec.com/index.html?varptr.htm die Adresse herausfinden und mit POKE http://avrhelp.mcselec.com/index.html?poke.htm zuerst die herausgefundene Adresse und dann die "Adresse + 1" beschreiben?
Ich kenne mich noch nicht so gut mit Bascom aus. Aber in der Hilfe zu POKE steht nur etwas von den Registern 0-31.
Aber ich werde es dann noch ausprobieren. Man will ja lernen.
mfg
Gerold
:-)
Hallo!Zitat von python_rocks
Ich bekomme beim Kompilieren dieses Beispiels
den FehlerCode:$regfile = "M8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 10 $framesize = 40 $baud = 9600 Dim Wordvar As Word Dim Address As Word Wordvar = 200 Print "Old Wordvar:" ; Wordvar Address = Varptr(wordvar) Print "Address:" ; Address Poke Address , 255 Poke Address + 1 , 255 Print "New Wordvar:" ; Wordvar End
"Error : 200 Line: 24 .DEF not found [R98 [adddr]] , in File..."
Wenn ich die POKE-Zeilen auskommentiere, dann bekomme ich als Ausgabe des laufenden Programms das hier:
mfgCode:Old Wordvar:200 Address:96 New Wordvar:200
Gerold
:-)
poke haut glaube ich nicht so hin !
mach das am besten so :
Dim b1 as Byte at $60 OVERLAY
Dim b2 as Byte at $61 OVERLAY
b1=1
b2=2
lo und hi-byte dort reinpacken.
Lesezeichen