www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik xxxdef.inc dateien


Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich fange gearade an mich mit dem thema Microcontroller zu
beschäfftigen und habe mir das tutorial von mikrocontroller.net
vorgenommen und habe dazu eine Frage:

Wenn man einen sourcecode schreibt, muss man ja immer als erstes eine
.inc datrei einbinden, damit bekannt ist, was mit pb0, pb1 ... gemeint
ist. Woher bekomme ich diese .inf dateien? Ich wollte den AT Mega
48-20PU verwenden, weil die mega serie nicht so leicht zu schrotten
ist, und weil dieser recht günstig ist.

Achja, nochwas, wenn AVR-Studio nur den ATmega48 drinne hat, kann ich
dann auch den atmega 48-20 PU verwenden?

vielen dank für die hilfe?

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die .inc Dateien liegen dem AVR-Studio bei,im Unterverzeichnis AppNotes
des jeweiligen Assemblers (AvrAssembler1 oderAvrAssembler2).Um den
genauen Pfad musst du dich nicht kümmern,den findet der Assembler
selber wenn alles richtig installiert ist.

Wenn du ein C-Compiler Plugin drin hast,liegen die includes (*.h) meist
in einem Unterverzeichnis \Include des Compilers.

Soweit ich weis,unterstützt das AVRStudio so ziemlich alle gängigen
AVRs,nich nur den Atmega48.Wichtig is nur,das du kompatible
Programmier-Hardware hast.Gruss,

Ronny

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Blick in die Datenblätter (bei www.atmel.com zu finden) zeigt, daß
es nur einen ATmega48 gibt.
Alle Erweiterungen der Bezeichnungen sind nur Kennzeichen für
Spannungsbereich, Taktfrequenz usw.
Register, I/O, Flash, Ram, EEPROM usw sind bei gleicher
Grundbezeichnung also identisch, damit also auch die include-Files.

Gruß aus Berlin
Michael

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, vielen Dank ersteinmal!

Die m48def.inf habe ich gefunden.

eine in \AvrAssembler2\Appnotes
und eine in \AvrAssembler\Appnotes

welche muss ich nehmen?

Ich habe die m48def.inf einfach in den ordner kopiert, in dem ich auch
die .asm datei und so gespeichert habe, trotzdem sagt er, das er die
datei nicht fnden würde. Habe ich etwas falsch gemacht?

Danke für die hilfe!

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kopieren musst du nix,den richtigen Dateinamen angeben reicht schon,wenn
alles richtig installiert ist ;)

m48def.INC (nicht inf)

Der Assembler der grad aktiv ist (sollte Version2 sein) findet dann
automatisch das richtige File.Wenn du das File ins Projektverzeichnis
kopierst handelst du dir maximal Probleme ein,wenn irgendwann ein
Update vom AVR-Studio das File aktualisiert.Dann würde nämlich unter
Umständen weiter das alte verwendet werden.

Poste doch einfach mal die Zeilen,in denen du die Dateien includest

Autor: Lukas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ok, nun funtzt es! im dateianhang mal der code!

Ich habe mal das prog simuliert, aber es hat nicht so gefuntzt , wie es
soll. müsste nicht DDRB nun 0xFF sein?

gruß Lukas

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum denn? an DDRB ändert sich doch nichts! Wenn Du 'PORTB' anstelle
von 'DDRB' meintest: An PIND herrscht undefiniertes Potential, da Du
die Pull-Ups nicht aktiviert hast. So wie es aussieht interpretiert der
Simulator das als '0'. In der Realität dürfte da was undefiniertes
rauskommen. Wenn Du Taster einlesen willst, grundsätzlich die Pull-Ups
aktivieren (und die Taster natürlich Low-Side anschließen, sonst kommt
gar nix raus).

Gruß

Johnny

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moment, also DDRB gibt ja an, welcher pin von port B ein einagns Pin
oder ein Ausgangspin ist. In der zwiten zeile steht ja das hier:

ldi r16, 0xFF
out DDRB, r16

also müsste das value von DDRB, welches ich ja bei der simulation bei
"IO ATMega48\PortB" nachschauen kann, 0xFF sein. Dort steht aber
0X00

das heißt, das der Komplette Port B als seigang geschaltet ist, oder
habe ich da etwas falsch verstanden?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach abarbeiten der Anweisung müsste da auch 0xFF stehen. Da das trivial
ist, hatte ich Deine Fragestellung nicht richtig verstanden. Ich bin
davon ausgegangen, dass sie sich auf das bezog, was weiter unten steht
(einlesen von PIND usw.).

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und warum ist DDRBdenn nicht 0xFF?

Wenn es 0xFF wäre, und ich nun das value von pinD durch aktiviren der
checkboxen 0xFF wird, sollte das value von port B  dann doch auch 0xFF
werden, oder?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe es grad mal ausprobiert und es funktioniert tadellos.
Sobald die Anweisung abgearbeitet ist, sind alle Felder in DDRB
schwarz.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und warum ist DDRBdenn nicht 0xFF?

Wie simulierst Du?

Wenn du das Programm im Simulator einfach nur laufen
lässt, wird die Anzeige vom Simulator nicht mitgezogen.

Du musst das Programm mit Einzelschritten durchsteppen
(F10 macht das) oder mittels 'Auto-Trace' laufen lassen,
nur dann stimmt die Anzeige.

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aaaah, ich habe mit step into (F11) gearbeitet, also vielen dank!

sollte ich denn pull-Up trotzdem verwenden? Wie aktiviere ich das denn?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau bitte mal ins Datenblatt und / oder ins Tutorial auf dieser Seite.
Da steht eigentlich alles, was man beim Anschluss von Tastern usw.
beachten muss. Das ist echtes Grundlagenwissen...

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Step Into sollte allerdings auch gehen.
Der Unterschied zwischen F10 und F11 ist nur der,
dass der Simulator bei einem 'CALL'-Befehl (Unterprogramm-
Aufruf) bei einem Step-Into in das Unterprogramm hineinsteppt,
während er bei einem normalen Step as UP komplett ausführt
und sich wieder meldet, wenn das UP zurückkehrt.

Pull-Up bei den In-Ports ist immer gut. Den aktivierst
du indem du an den Input Port eine Ausgabe machst. Jedes
1-Bit, dass du ausgibst aktiviert den entsprechenden Pull-up.

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.