Hallöchen, eine große Tabelle (800 Werte) für eine Sinus-Darstellung möchte ich im SRAM hinterlegen. Momentan habe ich das Problem so gelöst (mit Teilung der Tabelle): SINUS_WERTE_TEIL_1: .db 127,128,129,... ,0 SINUS_WERTE_TEIL_2: .db 127,126,125,... ,0 Nun meine Frage an Euch. Gibt es eine bessere Möglichkeit, die 800 Werte zu hinterlegen, ohne die Tabelle zu teilen? Denn die Zeilenlänge ist leider begrenzt. Danke Bernhard
Hi so? SINUS_WERTE: .db 127,128,129,... ,0 .db 127,126,125,... ,0 .db 127,126,125,... ,0 .db 127,126,125,... ,0 .db 127,126,125,... ,0 oder versteh ich das Problem jetzt gerade nicht? Matthias
Würde ich auch so machen, lass einfach die weiteren Labels weg! Carsten
Allerdings nicht im SRAM sondern im Flash-RAM. Zugriff erfolgt dann mittels LPM über das Z-Register. MfG Andi
Wenn du darauf achtest, dass die Anzahl der Einträge pro Zeile geradzahlig ist, dann geht das auch ohne jede Zeile mit 0 abzuschließen. Der Abschluss mit 0 ist eigentlich nur für Strings (Endekennung) erforderlich. Die 0 wird aber vom AVR-Assembler automatisch hinzugefügt, falls die Anzahl der Bytes ungeradzahlig ist. Ich mache öfters mal große Tabellen auf diese Art (8 oder 16 Bytes pro Zeile), wobei der ASM-Quelltext (der Tabelle) oft von VB6-Programmen generiert wird. ...
Danke für Eure Tipps. Hab's gerade mal getestet, funktioniert wunderbar. Und so sieht es jetzt aus: SINUS_WERTE: .db 127,128,129,... <Anzahl muss geradzahlig sein !! .db 127,126,125,... ,0 Der Zugriff erfolgt dann mittels LPM über X, Y oder Z-Register. Danke nochmals und schönes WE Gruß Bernhard PS: Ich generiere auch gerne den Tabellen-Code in VBA, spart bei großen Tabellen viel Zeit
Die Abschluss-0 brauchst du nur bei Texten, deren Ende an der 0 erkannt wird. Bei deiner Sinustabelle bestimmt doch der Pointer den "Zählumfang", da wird keine Ende-Kennung benötigt. Nunja, für VBA bin ich zu blöd, ich nutze VB6 oder auch mal das gute alte QBASIC (QB 4.5)... Mir ist aber neu dass LPM mit X und Y auch geht. Ich mach' das immer nur mit Z... ;-) ...
@HanneS ...stimmt, für den Befehl "LPM" kann natürlich nur das Z-Register verwendet werden...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.