www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger Frage zu Assembler


Autor: Klaus Wetzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin absoluter Neueinsteiger was die Programmierung von AVR und
Assembler betrifft.
Um mir ein Bild über ein Programm machen zu können suche ich ein ganz
simples Programm (mit Erklärung).
Ich möchte gerne mit einem Atmega8 über einen Tastimpuls am PC0 eine
LED an PC1 ein und ausschalten.

Kann kir jemand so etwas geben?

Danke und Gruß
Klaus

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus,
fang lieber damit an, nur eine LED einzuschalten. Tasten zu benutzen
erfordert Entprellung und das ist schon ein Thema fuer sich. Hast du
dir schon die Assembler-Befehlstabelle und das Datenblatt deines AVR
reingezogen ?

  Daz

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das ist zwar nicht das, was du suchst, aber es wird dir sicher helfen.
Denn das hatte ich mal für einen Anfänger geschrieben und daher üppig
kommentiert. Es diente zum Test eines Mega8-Boards.

...

Autor: Klaus Wetzel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

danke für die Antworten.
Die Befehle hab ich mir schon angesehen.
Mir fehlen noch ein bisschen die Zusammenhänge bzw. die Grundlagen.
Die Literatur ist sehr trocken.

Ich habe jetzt mal einen Anfang mit dem "AVR-Tutorial" hier im Forum
gemacht.

Jetzt bekomme ich die Fehlermeldung  "4433def.inc(38) : error : Syntax
error"
wenn ich mit der angehängten Dati versuche zu assemblieren.

Was ist da falsch?

Grüße
Klaus

Autor: Quark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kennst Du dieses aus der Codesammlung (vlt. ist es ja auch schon bei
den Artikeln im WiKi):
http://www.mikrocontroller.net/forum/read-4-81225.html

Grüße

Quark

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In welches Programm hast du denn die 4433def.inc eingebunden?

Hast du dir mein Beispiel mal angesehen?
Versuche doch mal, es (mithilfe des Datenblattes und der Hilfe des
AVR-Studios) zu analysieren. Das beantwortet schonmal einige
Anfängerfragen.

Hast du einen AT90S4433 in Benutzung???

Falls du einen Mega8 benutzt, musst du die m8def.inc einbinden.

Schau dir mal im Ordner avr-assembler\appnotes (oder ähnlich) deines
AVR-Studios die verfügbaten Include-Dateien an.

...

Autor: Klaus Wetzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo HanneS,

an deinem Beispiel bin ich drann.
Mit der Include Datei des AT90S4433 habe ich versucht die Beschreibung
im AVR Tutorial nach zu vollziehen.
Die Include Datei stammt aus dem AVR Studio (gestern runter geladen)
Wenn ich die Datei zum Atmega8 einbind bekomme ich noch mehr Fehler.
Liegt es vielleicht an einer anderen Adresszuordnung?

Grüße
Klaus

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu müsste ich das Programm sehen, welches die Include-Datei aufruft.
Denn die Fehler stecken nicht in der Include-Datei, sondern im Umgang
damit.

...

Autor: Klaus Wetzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versuch mal dein Glück:

.include "4433def.inc"       ;Definitionsdatei einbinden, ggf. durch

         ldi r16, 0xFF       ;0xFF ins Arbeitsregister r16 laden
         out DDRB, r16       ;Inhalt von r16 ins IO-Register DDRB
ausgeben

         ldi r16, 0b11111100 ;0b11111100 in r16 laden
         out PORTB, r16      ;r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ;Sprung zur Marke "ende" ->
Endlosschleife

Danke!
Klaus

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Komisch, mein Assembler meckert nicht...

Building project...
AVRASM: AVR macro assembler 2.0.31 (build 58 Apr 21 2005 14:17:40)
Copyright (C) 1995-2005 ATMEL Corporation
E:\AVR\Test\wetzel\test.asm(1): Including file
'C:\Programme\Atmel\AVR
Tools\AvrAssembler2\Appnotes\4433def.inc'
AT90S4433 memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x00000a     10      0     10    4096   0.2%
[.dseg] 0x000060 0x000060      0      0      0     128   0.0%
[.eseg] 0x000000 0x000000      0      0      0     256   0.0%
Assembly complete, 0 errors. 0 warnings

Kann es sein, dass in deiner Entwicklungsumgebung etwas nicht stimmt?

...

Autor: Jan Weber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hatte auch ein ähnliches problem! Es hat an der Include Datei
gelegen. Die 4433.inc hat bei mir nicht gefunzt. Da ich sowieso ein
atmega8 programmieren wollte hab ich mir m8def.inc bei google gesucht
und nach langer suche gefunden! Die Texdatei ist im Anhang. Du musst im
Programm nurnoch die include datei ersetzen also 4433.inc durch
m8def.inc ersetzen. m8def.inc muss im gleichen Quellordner sein wo dein
Prog gespeichert ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.