Hallo zusammen,

Ich hab hier nen Mega8, mit 6MHz von einem Quarz getaktet.
An einer gewissen Stelle des Programmcodes resettet sich die Mühle selber.... Das sollte sie aber nicht.
Hier mal der Code von der Stelle, wo die Sache spinnt:

T = 0

Do

If T = 8 Then
B = A / 4
D = 65534 - B
C = A / 2
E = 65534 - C

Timer1 = D
Z = 1
G = 0
End If

If U = 8 Then
Stop Timer1
Acsr = &B01000000
Cls
Locate 1 , 1
Lcd "Ende"
End If


Locate 2 , 1
Lcd T
Locate 2 , 5
Lcd Z
Locate 2 , 10
Lcd G
Locate 2 , 18
Lcd U

Loop

Sobald T den Wert 8 annimt, geht Z auf 1, das kann ich am LCD sehen. Doch: Dann gehen wieder alle Werte auf 0. Und da T=0 vor dem Do-Loop steht, muss er ja fast einen Reset durchführen.....
Falls T mal nicht den Wert 8 annimnt (zuwenig Signale vom Komparator), dann gehts etwa 1 Sekunde und alle Werte springen auf 0 Zurück.
Bei Bedarf kann ich auch noch den ganzen Code posten.

Was kann das sein? Der Reset-Pin hängt mit 10k an Vcc...
Oder ist das ein Software-Problem?
Soll ich das mit einem zweiten AVR testen?
Hmm, wenn ich mein Programm im Sim laufen lasse, dann springt er korrekt nach dem T=8 in die Komparator-Routine. Bei diesem Return fliegt er wieder voll an den Anfang des Programms.... Reset. Warum?? Wie lässt sich das vermeiden? Auch anch dem Timer-Return vom Interrupt springt er wieder ganz an den Anfang und beginnt von Vorne....
Häää, ich hatte dieses Problem noch nie..

Hmm, nach dem If T=8 stellt er ja den Timer vor. Wenn er dann das nächste mal in den Timer-Interrupt geht, fällt die Sache im Sim zusammen. Er ordnet dann allen Varialben ihre höchst möglichen Werte zu...

Hier die Timer-IRQ:
Zeit:
Timer1 = E

If Z = 0 Then
Return
End If

If G = 0 Then
G = 1
Return
End If

If G = 1 Then
G = 0
End If

Return

Irgendwo hier bricht der Sim und vermutlich auch der AVR zusammen... Nur:Wo?
Herzlichen Gruss
Mario