Forum: Mikrocontroller und Digitale Elektronik Atmega32 startet nach 10 Sekunden ungewollt neu


von Stefan Friedrich (Gast)


Angehängte Dateien:

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

von Karl H. (kbuchegg)


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

von Stefan Friedrich (Gast)


Lesenswert?

Ohhhhhh jeh schääm

Dankeschön das scheint des Rätsels Lösung gewesen zu sein :)


Nochmals Vielen Dank :))


Stefan

von Ben _. (burning_silicon)


Lesenswert?

g die einfachsten fehler sind die, die am schwersten zu finden sind.

was mich verwundert, daß das erst nach 10 sekunden crasht und nicht 
unmittelbar nach dem ersten funktionsaufruf.

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.