Hallo, bin wirklich blutiger anfänger und versuch mich gerad ein bisschen mit dem AVR-Studio 4. Beim Assemblieren kommt bei mir jedoch der fehler: E:\Eigene Dateien\Test001\m8515def.inc(372): error: Attempt to redefine keyword 'or' Die Zeile lautet: .equ OR =3 ; old name kept for compatibilty was auch immer das bedeuten mag?! Möchte diese Zeile auch nicht einfach löschen, da diese ja mit der UART in verbindung steht. Würde mich über Hilfe freuen, damit ich endlich mal den simulator testen kann :)
"or" ist ein Assembler-Befehl, und da der Assembler im Unterschied zu den meisten Compilern nicht Case-sensitiv ist, darfst Du nicht einen Assembler-Befehl redefinieren.
Sorry, muss natürlich heißen: [...], würdest Du mit der Anweisung den Assembler-Befehl redefinieren.
mhm, danke für die antowrt, aber ich habe quasi 0 verstanden.. :) Was bedeutet denn Case-Sensitiv? Wie bekomm ich das denn hin, das er das 8515def annimmt? Mein Source lautet ledigiglich: .include "m8515def.inc" ldi r16, 0b11111111 out DDRD, r16 out PortD, r16
Case-sensitiv heißt, dass GROSS- und kleinschreibung nicht unterschieden werden. "or" ist in Assembler ein Befehl, also ein Schlüsselwort, und ist demzufolge reserviert. Auch wenn man anstatt "or" "OR" schreibt, ist das für den Assembler dasselbe. Das ist anscheinend ein Fehler in der m8515def.inc, wie ich grad festgestellt habe. Öffne mal die m8515def.inc und kommentiere die betreffende Zeile aus (Semikolon davor) oder lösche sie gleich komplett und speichere das ganze. Was den Atmel-Leuten da eingefallen ist, kann ich mir so nicht denken...
Versuche es mal so: .include "8515def.inc" .org 0x00 loop: ldi r16, 0b11111111 out DDRD, r16 ldi r16, 0xFF ;hier kannst du nen Ausgabewert des Ports festlegen out PortD, r16 rjmp loop ...Die ganzen include Dateien stehen alle im AVR-Assembler Verzeichnis und helfen dem Compiler dein PortD... zu verstehen
Okay, danke für die Erklärung. Dachte nur bevor ich die einfach lösche, bekomm ich evtl. später probleme mit dem UART o.ä.
> bekomm ich evtl. später probleme mit dem UART o.ä. Nö, direkt drunter steht ein ".equ DOR = 3", das das (anscheinend veraltete) OR ersetzt. Ist nur eine Sache der Abwärtskompatibilität. Wenn Du nicht irgendwelche alte Software, die für andere AVRs geschrieben wurde, übernehmen und auf Deinen µC umschreiben willst, sondern alles selber schreibst, verwende DOR anstatt OR und die Sache ist geritzt. Kann mir so gar nicht vorstellen, dass der Fehler mir hier im Forum noch gar nicht untergekommen ist. Du warst ja vermutlich nicht der erste, bei dem es geklingelt hat...
Hab grad mal ein Programm in ASM geschrieben und bekomme keine Fehlermeldung. Hast Du im AVRStudio unter "Project | Assembler Options" den Assembler Version 2 ausgewählt? Der benutzt nämlich eine neuere "m8515def.inc", in der das OR nicht mehr drin ist. Wenn Du noch Version 1 benutzt, dann schalte mal um auf Version 2. Dann gehts auch ohne Manipulationen an den .inc-Dateien...
Hab noch mal mit Assembler Version 1 probiert. Gibt bei mir auch keine Fehlermeldung, trotz OR in der Header-Datei... Ist schon seltsam
Also zum guten Schluss: Die von Dir beschriebene Fehlermeldung bekomme ich nur, wenn ich die Zeile ".equ OR = 3" direkt ins Programm reinschreibe. Sonst läuft alles normal (assembly complete with no errors)
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.