Forum: Mikrocontroller und Digitale Elektronik AVR Asembler


von Mario410200 (Gast)


Lesenswert?

Hab folgendes Prob: jedesmal wenn ich was assemblierne will kommt di 
Fehlermeldung 4433def.inc (3) : file acces error
Wisst ihr woran das liegt
gehen tuts nur mit dem 2313, bei allen anderen kommt die gleiche 
Fehlermeldung

von AndiS. (Gast)


Lesenswert?

Hey,
hatte neulich dasselbe Problem!
Das Problem war die falsche Art und Weise, weitere Include-Dateien zu 
integrieren.
Gruß,
Andi.

von Mario410200 (Gast)


Lesenswert?

UND könntest du mir vielleicht verraten welches die richtige ART und 
Weise ist um include Dateien zu integrieren.

von AndiS. (Gast)


Lesenswert?

Habe neben meiner "Hauptprogrammdatei.asm" noch eine 
"Nebenprogrammdatei.asm" anlegen müssen, da mir beim
wavrasm-Assembler die Zeilen ausgingen.
Immer wenn ich mitten im Programm dann auf Programmteile zurückgreife, 
die im Nebenprogramm stehen, dann schreibe ich:

z.B.:

Anfangsbedingung:
ldi  test,0
rcall rauf                        <------- Hier rufe ich meine 
Includedatei auf
ldi sek1,$30                               aber über "rauf:", damit ich 
über mehrere
ldi sek2,$30                                Stellen im Hauptprogramm 
darauf zu-
ldi min1,$30                                 greifen kann.
ldi min2,$30
ldi hr1,$30
ldi hr2,$30
...





rauf:
.include "rauf.asm"
ret







Die rauf.asm-Datei sieht so aus:



rcall  beep
sbi PORTB, 0
rcall Delay0ms7
cbi PORTB, 0
rcall Delay15ms
sbi PORTB, 0
rcall Delay0ms7
cbi PORTB, 0
rcall Delay15ms
sbi PORTB, 0
rcall Delay0ms7
cbi PORTB, 0
rcall Delay15ms
sbi PORTB, 0
rcall Delay0ms7
cbi PORTB, 0
rcall Delay15ms
sbi PORTB, 0
rcall Delay0ms7
cbi PORTB, 0
rcall Delay15ms


Assemblieren tu ich dann nur die Hautprogramm.asm.
Mehr is nich, hab ich durch x Versuche rausgefunden!
Gruß,
Andi

von Erwin (Gast)


Lesenswert?

Die include-Dateien (*def.inc oder *.asm oder ...) müssen im gleichen 
Verzeichnis stehen wie die Main.asm oder andere *.asm. Vielleicht liegt 
es daran.
Man muß auch aufpassen, wenn man an verschiedenen Projekten arbeitet, 
daß man immer wieder zurück auf den richtigen Pfad kommt, um 
abzuspeichern. Ich schau mir manchmal alte Dateien an, lade diese aus 
einem alten Verzeichnis, nehme etwas daraus in die neue Datei, dann aber 
muß ich wieder zurück auf den neuen Pfad, um zu speichern ... na ja ... 
jedenfalls ...alle Dateien in einem Verzeichnis

-- immer wieder die *.def.inc - Dateien kopieren .. ich hab sie x-mal in 
x-Ordnern.


Gruß Erwin

von Uwe (Gast)


Lesenswert?

Hi,
Hast du denn eine "4433def.inc" ? Sonst kann  sie der  Asembler ja 
garnicht finden. Beinhaltet übrigens die Register und Pin-Definitionen.
Gruß Uwe

von Mario410200 (Gast)


Lesenswert?

So hab jetzt endlich. Ich muss nur anstatt .include "4433def.inc
den ganzen Pfad angeben z.b. .include "E:\Projekte\4433def.inc

von Andi S. (Gast)


Lesenswert?

Welchen Assemler verwendest du?
Assemblierst du in das selbe Unterverzeichnis hinein, indem die 
"4433def.inc" auch steht?
Bei mir beim wavrasm ists das Appnotes-Unterverzeichnis wo ich 
hineinassembliere, da stehen auch meine include-Dateien und ich muß den 
Pfad nicht vollständig angeben...
Andi

von Erwin (Gast)


Lesenswert?

Jetzt weiß ich, was Du meinst. Das Problem habe ich auch, da ich den 
4433 auch gerne nehme. Folgendes kannst Du tun. Schreib einfach in die 
Datei die 2333def.inc, ignoriere die Warnung, daß der Baustein voll ist 
(der Assembler gibt dies nicht als Fehler aus, tut also seine Arbeit) 
Beim Programmieren dann stellst Du den 4433 ein. Die Pinbelegung und all 
diese Sachen sind ja bei beiden Bausteinen gleich, nur eben der 
Speicherumfang nicht --- die Variante geht 100pro -- ich mach es 
jedenfalls so.

Gruß Erwin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.