AT90:Code Frage

Hallo

wie definiere ich im ROM-Bereich des o.g. eine Tabelle mit 256 Einträgen a

16 bit?

mit 256 * .dw ist es zu aufendig.

Robert

Reply to
R.Freitag
Loading thread data ...

Hi

gen a=20

Irgendwie musst du die Werte doch angeben - also wirst du um das eintippen nicht herumkommen. Du kannst natuerlich mehrere Werte pro Zeile angeben: =2Edw 2,3,5,7,11,13,17,19,23

Wenn du zu faul bist, 256 Nullen einzutippen, kann ich dir ja vielleicht helfen:

table: =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 =2Edw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

SCNR. Bye, Thomas

Reply to
Thomas Matern

a

.cseg table: .dw 0x00, 0x01, 0x02, 0x03, ... .dw 0x10, 0x11, 0x12, 0x13, ....

Schon mal in die Doku geschaut?

formatting link

Georg

Reply to
Georg Meister

R.Freitag schrieb im Beitrag ...

Die Eintraege sollen ja wohl nicht alle 0 sein, also was sonst ausser DW ?

-- Manfred Winterhoff, reply-to invalid, use mawin at despammed.com homepage:

formatting link
de.sci.electronics FAQ:
formatting link
Read 'Art of Electronics' Horowitz/Hill before you ask. Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.

Reply to
MaWin

gen a

=2Erept 256 =2Ebyte 0x23,0x45 =2Eendr

w=FCrde ich beim avr-as bzw. gcc verwenden :-) Die Repeats und endr. lassen sich dabei auch beliebig schachteln.

Mir ist allerdings nicht klar welchen Inhalt das ganze dann haben soll :-)

Gru=DF Klaus

Reply to
Klaus Rudolph

Ich habe eine Reihe von Unterprogrammen, die mit ijmp ausgeführt werden sollen. Der Befehl ijmp verzweigt dahin, wo das z-Register hinzeigt.

Der Inhalt des Z-Registers soll jetzt gebildet werden. Das bedeutet, dass ich eine Adresse aus einer Tabelle lesen muss.

Beispiel: ich will Befehl Nr 60 ausführen, dann lade ich 60, shifte das einmal nach links und addiere das Ergebnis des Shiftens (mit Cy) zum Tabellenoffset. Im adressiertem Feld steht dann die 16-bit-Sprungadresse, die in das Z-Register geladen wird.

Am einfachsten hätte ich gerne eine Tabelle mit Labeln der Unterprogramme.

Für Ideen dankbar

Robert

Reply to
R.Freitag

Warum schreibst du dann nicht einfach die Labels in die .dw Zeilen?

label1: ...

.dw label1

mfg Andreas

R.Freitag wrote:

Reply to
Andreas Krebs

l

en

ss

as

e,

amme.

Ja und warum das alles in manuellen Tabellen???? Das geht auch in C v=F6llig ohne Overhead:

void f1(void) { }

void f2(void) { }

void f3(void) { }

#define FLASH __attribute__ ((progmem)) =

void FLASH (*const ptr[] )() =3D { =

f1, f2, f3 };

int main() { int tt; =

for (tt=3D0; tt

Reply to
Klaus Rudolph

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.