xxxdef.inc dateien

Gast #346639
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?
Gast #346640
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
Gast #346641
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
Gast #346642
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!
Gast #346643
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
Gast #346645
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
Gast #346646
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?
Gast #346647
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.).
#346650
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.
#346653
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren