AVR ASM Sprungtabelle

OP #7385737
Lesenswert?

Hallo, ich arbeite an einem asm Programm für einen ATmega48 und wollte eine Sprungtabelle nutzen. Die einzelnen Werte entsprechen Uhrzeiten im 5 min Schritt:

Sprungtabelle: .DW 0700, 0705, 0710, 0715, 0720, 0725, 0730, 0735, 0740, 0745, 0750, 0755, 0800, 0805, 0810, 0815, 0820, 0825, 0830, 0835, 0840, 0845, 0850, 0855, 0900, 0905, 0910, 0915, 0920, 0925, 0930, 0935, 0940, 0945, 0950, 0955, 1000, 1005, 1010, 1015, 1020, 1025, 1030, 1035, 1040, 1045, 1050, 1055, 1100, 1105, 1110, 1115, 1120, 1125, 1130, 1135, 1140, 1145, 1150, 1155, 1200

Problem: Im Atmel Studio 6 wird für die Werte 0800 bis 0955 die Fehlermeldung "Invalid number" ausgegeben. Die Werte davor und dahinter werden anstandslos akzeptiert.

Hat jemand eine Erklärung?

Dank und Gruß

Gast #7385738
Lesenswert?

Bruno M. schrieb:

Hat jemand eine Erklärung?

Die führende Null kennzeichnet Zahlen in oktaler Schreibweise. Oktale Ziffern gehen von 0 bis 7.

Bruno M. schrieb:

Die Werte davor und dahinter werden anstandslos akzeptiert.

Aber im Speicher hast du mit Sicherheit nicht die erwarteten Zahlenwerte. Du willst dezimale Zahlen schreiben, die dürfen nicht mit einer 0 beginnen.

#7385761
Lesenswert?

Bruno M. schrieb:

ich arbeite an einem asm Programm für einen ATmega48 und wollte eine Sprungtabelle nutzen. Die einzelnen Werte entsprechen Uhrzeiten im 5 min Schritt:

Sprungtabelle: .DW 0700, 0705, 0710, 0715, 0720, 0725, 0730, 0735, 0740, 0745, 0750, 0755, 0800, 0805, 0810, 0815, 0820, 0825, 0830, 0835, 0840, 0845, 0850, 0855, 0900, 0905, 0910, 0915, 0920, 0925, 0930, 0935, 0940, 0945, 0950, 0955, 1000, 1005, 1010, 1015, 1020, 1025, 1030, 1035, 1040, 1045, 1050, 1055, 1100, 1105, 1110, 1115, 1120, 1125, 1130, 1135, 1140, 1145, 1150, 1155, 1200

Was hast du in den letzten 40 Jahren gemacht? Winterschlaf? Stasis? Dimensionssprung? Zeitreisen?

So einen Käse programmiert kein Mensch, der auch nur ANSATZWEISE Assembler verstanden hat. In so eine Tabelle schreibt man LABELS, keine KONSTANTEN!

https://www.mikrocontroller.net/articles/AVR-Tutorial:_Mehrfachverzweigung

Oder soll das eigentlich gar keine Sprungtabelle werden, sondern eher ein Datenfeld, aka Array? Danach sieht es nämlich aus.

Kann man so machen, kann man aber auch mittels Formel berechnen, ist ja nun weiß Gott einfach.

#7385859
Lesenswert?

Das ist eine Tabelle, aber doch keine Sprungtabelle. Eine Sprungtabelle ist eine Tabelle mit Adressen von Funktionen, die aufgrund des Tabellenindex angesprungen werden.

Die Konstanten aber, die in dieser Tabelle stehen, sind ganz offensichtlich aber nicht die Adressen von Funktionen, die angesprungen werden können, sondern Uhrzeiten in einem merkwürdigen Dezimalformat.

Wozu auch immer das gut sein mag.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren