Forum: Mikrocontroller und Digitale Elektronik Lauflicht


von Blutiger Anfänger (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Als eines meiner ersten Anfängerprojekte
wollte ich ein kleines Lauflicht programmieren, bei dem immer zwei
LED's an PORTD meines ATMega 8 von links nach rechts laufen. Das
funktioniert auch ganz gut. Nur das nach etwa 2 manchmal auch 3
Durchgängen die LED's von der Mitte wieder zum Ausgangspunkt
springen.
Es scheint so als würde der Controller reseten. Aber warum?
Vielleicht hat jemand von euch eine Idee!
P.S. Bitte nicht über die vielleicht umständliche Programmierweise
lustig machen. Bin wie schon gesagt noch Anfänger

MFG

Blutiger Anfänger

von Chriss (Gast)


Lesenswert?

Hab mir den Code jetzt nicht angeguckt, aber manchmal ist der Fehler
auch in der Beschaltung zu finden.


Womit befeuerst du denn deinen uC?
Batterie, transformator/Geichrichter/Netzspannung etc.?

von leo9 (Gast)


Lesenswert?

hab den code zwar nur überflogen, aber zwei Sachen sind mir
aufgefallen:

1) du sicherst das Status Register in der Int-Routine nicht.

2) du verläßt die Int-Routine manchmal (BREQ led) mit einem Jump und
springst weiter in die Main-loop. Den Int enablest du zwar mit sei
wieder, aber der Stack wird vollgeschrieben.
-> in den ledxx: Routinen sei weglassen und rjmp loop dirch reti
ersetzen

grüsse leo9

von Blutiger Anfänger (Gast)


Lesenswert?

Erstma Danke für die Antwort!

@Chriss

Denke nicht das es an der äußeren Beschaltung liegt.Verwende ein
umgebautes PC- Netzteil als Spannungsversorgung.

@Leo9

Es leuchtet zwar ein, was du geschrieben hast. Es verschlimmert den
ganzen Effekt aber eher! Aber trotzdem Danke!

MFG

Blutiger Anfänger

von thkais (Gast)


Lesenswert?

Spring niemals aus einer Interrupt-Routine heraus. Sie sollte immer
mit einem reti verlassen werden - alles andere ist unsauber und bringt
nur Probleme.

von Peter D. (peda)


Lesenswert?

Gilt aber auch für jedes andere Unterprogramm:

Spring niemals aus einem Unterprogramm heraus !


Peter

von Thorsten (Gast)


Lesenswert?

Hallo,
du schreibst im Beitrag dass du einen ATMega8 verwendest. Das gleiche
wird im Programm im Kommentar ganz oben auch noch mal geschrieben. Und
dann kommt '.include "4433def.inc"'. Welcher µC wird denn jetzt
verwendet? Ich hätte jetzt eigentlich '.include "m8def.inc"'
erwartet.

Gruß
Thorsten

von Blutiger Anfänger (Gast)


Angehängte Dateien:

Lesenswert?

Habe jetzt alles geändert(Anhang). Auch das mit m8def.inc.
Der Fehler ist aber immernoch da! Noch jemand eine Idee?

von Thorsten (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich lagere meine SMD-Teile in Boxen, wie im Anhang. Habe übrigens noch
15 Stück übrig, die könnte ich gerne günstig abgeben.

Maße gesamt: 90 x 38
Maße ein Fach: 17x17x6 (LxBxH) (alles in mm)

Pro Fach passen zwar nicht 1000 Widerstände rein, aber ca. 150-200
1206er ist kein Problem.

Schick einfach eine Mail bei Interesse.

Gruß
Thorsten

von Thorsten (Gast)


Lesenswert?

Sorry Leute, hab den falschen Thread erwischt; Sorry :)

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.