Atmega32 startet nach 10 Sekunden ungewollt neu

Gast #2021253
Lesenswert?

Hi,

hab ein Problem. Mein Atmega startet nach ca 10 Sekunden automatisch neu 
und ich weiss nicht woran das liegt. Der Source Code ist im Anhang, 
sowie ein kleines Video in dem zu sehen ist was passiert.

Das Programm soll nach dem Start den Text T1 auf dem Display ausgeben 
(T1 ist in menues.asm definiert) sowie die LEds an PORT B auf 10101010 
und die LEDs an Port C auf 01010101 schalten, was es auch ordnungsgemäß 
tut.

Wenn nun der Taster an PinA,0 gedrückt wird soll auf dem Display der 
Text T2 (wieder aus menues.asm) erscheinen und die LEDs sollen genau 
invertiert aufleuchten, was auch klappt, aber eben nur ca 10 Sekunden..

Dann scheint es als würder der Controller ungewollt einen Reset machen.

Kann mir jemand weiterhelfen, bzw ist das Problem bekannt `?


Pinbelegung:

A0...7 Taster
B0...7 LEDS
C0...7 LEDS
D0...7 LCD


Vielen Dank schonmal

Stefan
Angehängte Dateien:
#2021271
Lesenswert?

Ergänz doch da mal in den Routinen delay10ms und delay50ms die fehlenden 
ret

1
delay5ms:                               ; 5ms Pause
2
           ldi  temp1, ( XTAL * 5 / 607 ) / 1000
3

4

5

6
WGLOOP0:   ldi  temp2, $C9
7
WGLOOP1:   dec  temp2
8
           brne WGLOOP1
9
           dec  temp1
10
           brne WGLOOP0
11
           ret                          ; wieder zurück
12
delay10ms:
13
    rcall delay5ms
14
    rcall delay5ms
15
delay50ms:
16
    rcall delay10ms
17
    rcall delay10ms
18
    rcall delay10ms
19
    rcall delay10ms
20
    rcall delay10ms
21

22
 ; Initialisierung LCD 1: muss ganz am Anfang des Programms aufgerufen werden
23
lcd_init:
24
       push temp1

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