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ß
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.
Lass die führende 0 weg, damit sie nicht als Oktalzahlen interpretiert werden.
Werden sie vielleicht als oktale Zahlenwerte interpretiert? ;-) Argh, Zweiter…
:
Bearbeitet durch User
Bruno M. schrieb: > für die Werte 0800 bis 0955 die > Fehlermeldung "Invalid number" ausgegeben K.A. welches Format deine Werte haben sollen aber ich vermute einfach mal so das nur die Ziffern 0-7 erlaubt sind.
Bruno M. schrieb: > Hat jemand eine Erklärung? Numerische Literale mit führenden Nullen und ohne weitere Qualifizierer werden werden als Oktalzahlen interpretiert.
Stefan F. schrieb: > Die führende Null kennzeichnet Zahlen in oktaler Schreibweise. Super, das war mir nicht bekannt! Danke für die Antworten!
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.
Falk B. schrieb: > Was hast du in den letzten 40 Jahren gemacht? Winterschlaf? Stasis? > Dimensionssprung? Zeitreisen? Hauptsache dummgeschwätzt?
Nöö, das ist Falk wie wir ihn kennen und lieben... oder eben auch nicht lieben. Alles was nicht seiner Stillinie entspricht, muss direkt zu Tode gemotzt werden.
Ben B. schrieb: > Nöö, das ist Falk wie wir ihn kennen und lieben... oder eben auch nicht > lieben. Alles was nicht seiner Stillinie entspricht, muss direkt zu Tode > gemotzt werden. Daß du die Kritik nicht verstehst, ist nix neues. Dein Gelaber ist auch grenzenlos.
Bruno M. schrieb: > Die einzelnen Werte entsprechen Uhrzeiten im 5 min > Schritt: Du weißt aber schon, daß der ATmega48 einen MUL-Befehl hat. Die 2 Bytes sind doch leichter berechnet als die Tabelle einzuhacken.
:
Bearbeitet durch User
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.
Harald K. schrieb: > Das ist eine Tabelle, aber doch keine Sprungtabelle. Vermutlich indirekt. Die Sprungroutine springt anhand des Index auf den richtigen dieser Zeit-Werte auf den eigentlichen Eintrag der ungezeigten, echten Sprungtabelle...
Hallo, Sprungtabelle ist es für mich auch nicht. Wertetabelle vielleicht, dann könnte es packed BCD sein. Dann sind es eben Wordwerte und es sollte so aussehen: .DW 0x0700, 0x0705, 0x0710, ... Letztlich weiß aber nur der TO was er da bastelt. Gruß aus Berlin Michael
Michael U. schrieb: > Letztlich weiß aber nur der TO was er da bastelt. Bist du dir da sicher? Oliver
Hallo, Oliver S. schrieb: > Michael U. schrieb: >> Letztlich weiß aber nur der TO was er da bastelt. > > Bist du dir da sicher? > > Oliver nö... Gruß aus Berlin Michael
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.