Forum: Mikrocontroller und Digitale Elektronik Bascom Atmega32 startet prog. neu & macht Probleme


von Ben L. (joee1)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Uhrzeit Programm in Bascom geschrieben und habe leider 
einige Problme die ich mir nicht erklären kann.

Ich möchte die Uhrzeit über Taster einstellen, also eigentlich recht 
simpel, bei Taster1 sollen die Sekunden hochzählen, bei Taster2 die 
Minuten.

Dies Funktioniert auch sporadisch.

Meine Probleme sind folgende:

1.)
Displayausgabe zeigt nach ein Paar min nur noch Hyroglyphen (für kurze 
Zeit ca. 3 Min.) an, dannach ist es leer und nach wiederum ein paar 
Minuten wird die Zeit wieder korrekt angezeigt.

Ich habe keine Ahnung an was das liegt zumal das LCD bisher bei allen 
Programmen zuverlässig funktioniert. Die Schaltung ist die gleiche da 
alles auf einem Pollin-Testboard läuft

2.)
Sporadisch, nach einigen Tastendrücken um die Uhrzeit einzustellen 
startet das Programm neu.

3.)
Um besser Debuggen zu können gebe ich über die RS232 Schnittstelle die 
Programmposition aus, in der sich das Prog. befindet.

Nach betätigen der Tasten findet der Atmega32 nicht mehr aus der ISR den 
Weg zurück in die Hauptschleife. Dieses Problem tritt auch sporadisch 
auf.

Kann das ein Problem mit dem Stackpointer sein?

Hier ein Terminal-Abschnitt bei dem das Problem sichtbar aufgetreten 
ist.
Nach einigen Minuten findet er den Weg wieder in die Hauptschleife. 
Unten sieht man wie er nur noch jede Sekunde die ISR abarbeitet.
1
Hauptschleife
2
Hauptschleife
3
Hauptschleife
4
Hauptschleife
5
Hauptschleife
6
Hauptschleife
7
ISR
8
Taster2, Minuten  15:4:11
9
Taster2, Minuten  15:5:11
10
Taster2, Minuten  15:6:11
11
Taster2, Minuten  15:7:11
12
Taster2, Minuten  15:8:11
13
Taster2, Minuten  15:9:11
14
Taster2, Minuten  15:10:11
15
Taster2, Minuten  15:11:11
16
Taster2, Minuten  15:12:11
17
ISR
18
Hauptschleife
19
Hauptschleife
20
Hauptschleife
21
Hauptschleife
22
Hauptschleife
23
Hauptschleife
24
ISR
25
Taster1  15:13:13
26
Taster1  15:13:14
27
Taster1  15:13:15
28
Taster1  15:13:16
29
Taster1  15:13:17
30
Taster1  15:13:18
31
Taster1  15:13:19
32
ISR
33
ISR
34
ISR
35
ISR
36
ISR
37
ISR

Mein Uhrzeit-Programm habe ich in den Anhang als *.txt Datei getan.

Vielen Dank & Grüße
Joe

von Timo (Gast)


Lesenswert?

Hi Ben,

tolle Effekte ergeben sich in Bascom gerne, wenn Stack und Framesize 
nicht stimmen.
Da kann es sein, dass ein Programm scheinbar einwandfrei läuft und 
plötzlich was unerwartetes passiert (-> LCD Anzeige, Reset, etc.), nur 
weil ein paar Unterprogrammsprünge etc ausgeführt wurden.

Da Du für Dein Projekt scheinbar SRAM über hast, einfach mal mit den 
Werten spielen oder besser: in den entsprechenden Tutorial nachlesen.

Viele Glück!


Timo

von Ben L. (joee1)


Lesenswert?

Hi Timo, danke!

Werde mich morgen nach entsprechenden Tutorials umsehen, wenn das nichts 
bringt spiele ich mal mit den Werten und hoffe das es funktioniert.

Grüße Joe

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.