-         

Ergebnis 1 bis 5 von 5

Thema: Anfängerproblem

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    30
    Beiträge
    270

    Anfängerproblem

    Anzeige

    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?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    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>

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    05.07.2007
    Beiträge
    44
    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

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    30
    Beiträge
    270
    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

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •