-
Anfängerproblem
Hallo Leute,
ich wollt jetzt mal meine ersten Schritte mit Assembler machen und scheitere schon bei den ersten Zeilen :(
Hoffe ihr könnt mir weiter helfen.
Ich benutze das AVRStudio zum schreiben des Programmes.
Mein test schaut so aus:
Code:
ldi R16, 0b00111111
out DDRB, R16
Beim Compilieren kommt folgender Fehler:
error: Undefined Variable
Wenn ich das Programm so schreibe gehts ohne Fehler:
Code:
ldi R16, 0b00111111
out 0x17, R16
Wo liegt der Fehler das er DDRB nicht erkennt?
Habe einen ATMega8 ausgewählt und bekomme in dem "Workspace" auch alle 3 Ports angezeit und auch das DDRB.
Hab auch mal probiert noch diese Zeile voran zu stellen:
Code:
.INCLUDE <m8def.inc>
Geht auch nicht...
m8def.inc liegt im gleichen Ordner wie die generierte .asm-Datei
und nochmal im Atmel-Standart-Ordner für die ganzen inc-Dateien.
Also wie bring ich mein AVR-Studio dazu des DDRB zu erkennen?
-
Die Variable muß erst Declariert werden und das wird im entsprechenden *.inc-File gemacht.
Code:
.INCLUDE "m8def.inc"
ldi R16, 0b00111111
out DDRB, R16
Das geht bei mir.
Falls er das Inc-File nicht findet kommt ne Fehlermeldung:C:\Dokumente und Einstellungen\Administrator\xx.asm(2): error: Cannot find include file: m8def.inc
Kanns auch mal schauen ob in deinem M8DEF.INC die richtige Definition drinn steht : .equ DDRB =$17
Du kannst im Atmel-Studio auch den vollen Pfad zur *-INC-Datei angeben : .INCLUDE <C:\Programme\Atmel\AVR Tools\AvrAssembler2\Appnotes\m8def.inc>
-
Hallo robodriver
Es könnte an der Assembler Version liegen.
Schau doch mal im AVR - Studio unter
Projekt
Assembler Options
nach welche Assembler Version ausgewählt ist.
Versuche es einmal mit jeder Version.
MfG
A.Hoffmann
-
Okay, danke, das hat geholfen.
der fehler lag wohl offensichtlich daran das ich
.include <m8def.inc>
geschrieben hatte. Das kann mein AVR-Studio scheinbar nicht. Aber mit
.include "m8def.inc"
funktionierts jetzt einwandfrei. Vielen Dank nochmal :)
-
Grüß Euch,
also die Syntax von
.include <file.ext> - oder #inc....
durchsucht (bei Assembler 2 vom AVRStudio), soweit ich weiss, >>NICHT<< die aktuelle directory, während
.include <file.ext> - oder #inc....
die aktuelle directory durchsucht.
Vielleicht liegts daran? Da wäre dann irgendwie oder irgendwo der Preprozessor schuld.
Joe,
DerAltevomBerg