Wenn ich die zwei Interupts in der Reihenfolge tausche gibt mir der compiler ein Fehler aus, warum macht er das? .org OVF1addr rjmp timer1_overflow .org OVF0addr rjmp timer0_overflow folgendes verwende: .org OVF0addr rjmp timer0_overflow .org OVF1addr rjmp timer1_overflow Beide Timer interupts zusammen Machen mir auch Probleme. Sie funktionieren irgendwarum nur einzelnd. +------------------------------------------------------------+ | gavrasm gerd's AVR assembler Version 2.1 (C)2006 by DG4FAC | +------------------------------------------------------------+ Compiling Source file: empf.asm ------- Pass: 1 Line: 1 Warning 009: Include defs not necessary, using internal values! File: empf.asm, Line: 1 Source line: .include "m16def.inc" Line: 9 Error ==> .org OVF1addr [empf.asm,9] 046: Origin adress (16) points backwards in code segment! 108 lines done. Danke
Vermutlich hat dieser Assembler gewisse Defizite bei der Montage von Codesegmenten und läßt deshalb nur ORG-Anweisungen zu, die auf oder hinter das Ende des Codesegmentes zeigen.
Ich schätze mal eher, dass der Assembler es nicht mag wenn die Adresse eines "org" niedriger ist als die Adresse des davorstehenden Befehls. Mit dem Tauschen der Codezeilen werden ja auch die zu den beiden org Anweisungen gehörenden Adressen getauscht.
Dieter Werner wrote: > Ich schätze mal eher, dass der Assembler es nicht mag wenn die Adresse > eines "org" niedriger ist als die Adresse des davorstehenden Befehls. Und wodurch unterscheidet sich deine Erkenntnis von dem, was ich eben geschrieben habe? Deutshes Sprach shweres Sprach...
Da bin ich wohl etwas "dezifit" (also nur 1/10 fit). Für mein Verständnis ist das Ende des Codesegments die höchste belegte Adresse und nicht die Adresse der vorangehenden Instruktion.
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.