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
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 |
Ohhhhhh jeh schääm Dankeschön das scheint des Rätsels Lösung gewesen zu sein :) Nochmals Vielen Dank :)) Stefan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.