Forum: Mikrocontroller und Digitale Elektronik Blinklicht


von sceak (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
bin noch Anfänger in der Assembler Welt, ihr müsst mir mal auf die
Sprünge helfen...
Warum zur Hölle funktioniert dieser (meiner Meinung nach logisch
korrekter Code) nicht auf meinem ATmega8-16PI? Hardware ist
funktionsfähig, die LED sagt aber keinen Ton...

von Marius (Gast)


Lesenswert?

Hallo
Ich kenne mich nicht gut in assembler aus drum kann ich keine Fehler im
code suchen/finden.
Aber du haßt den 4433 defeniert du willst aber den Atmega8 verwenden.
Müsste dann IMHO .include "m8def.inc" heißen nicht .include
"4433def.inc".
Hoffentlich hilfts dir ein bisschen
mfg Marius

von Jens Renner (Gast)


Lesenswert?

Bist Du sicher, dass Du keinen 4433 verwendest...? Dessen Headerdatei
hast Du nämlich eingebuden.

von Marius (Gast)


Lesenswert?

Noch mal mit weniger Rechtschreibfehlern.

Hallo

Ich kenne mich nicht gut in Assembler aus drum kann ich keine Fehler
im
Code suchen/finden.
Aber du hasst den 4433 definiert du willst aber den Atmega8 verwenden.
Müsste dann IMHO .include "m8def.inc" heißen nicht .include
"4433def.inc".
Hoffentlich hilft es dir ein bisschen
mfg Marius

von sceak (Gast)


Lesenswert?

OK, soweit so gut, das habe ich schonmal geändert. Bringt aber kein
besseres Ergebnis, mag daran liegen dass die Definitionen nahezu
identisch sind.

von sceak (Gast)


Lesenswert?

Hm, wenn ich die m8def.inc einbinde gibt mir mein Assembler folgende
Ausgabe, mit der 4433def.inc gings... confused

Including  'C:\Programme\Atmel\AVR
Tools\AvrAssembler\AppNotes\m8def.inc'
C:\Dokumente und Einstellungen\sceak\Desktop\blinklicht.asm(21) :
warning: Immediate byte operand out of range
C:\Dokumente und Einstellungen\sceak\Desktop\blinklicht.asm(22) :
error : Undefined variable referenced
Assembly complete with 1 error

von Jens Renner (Gast)


Lesenswert?

Soweit ich weiß, besteht wg. des größeren RAMs beim Mega8 der
Stackpointer aus SPL und SPH. Das heißt, Du musst den Stackpointer mit
high(RAMEND)und low(RAMEND) initialisieren.

von Jens Renner (Gast)


Lesenswert?

Die Fehlermeldung betrifft genau den Stackpointer. RAMEND ist eine
16bit-Konstante, und SP existiert nicht.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Es waren mehrere Fehler drin.
Hab mal ein paar kleine Änderungen vorgenommen.
Jetzt funktioniert es.

von sceak (Gast)


Lesenswert?

Hey, danke,
erstmal grosses Lob an alle hier für die schnellen Antworten...

Kann mir denn einer sagen wie ich den Stackpointer im Assembler richtig
initialisiere? Finde in der Definitionsdatei nichts bzgl. dem
Stackpointer und im Datenblatt steht auch nichts diesbzgl.

von sceak (Gast)


Lesenswert?

Das geht so schnell da kann ich gar nicht schnell genug antworten...
Danke, Stefan, es geht nun...

Irgendwie hatte ich mir die falschen Hilfen gesucht, und das hat mich
doch etwas in den Wahnsinn getrieben ;) Danke dass ihr mich aufgeklärt
habt :))

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.