www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Crumb128 springt aus Endlosschleife! Resetproblem?


Autor: Niklas Roy (niklas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich arbeite gerade mit einem Crumb128-Modul, das ich in Bascom 
programmiere. Das Programm besteht nur aus dem Initialisierungsteil und 
einer Endlosschleife. Eigentlich erwarte ich, dass der Controller den 
Initialisierungsteil einmal ausführt und danach in der Endlosschleife 
hängen bleibt (deshalb heißt sie ja "Endlos-"). Macht er aber nicht. 
Stattdessen führt er auch immer wieder den Code vor der Endlosschleife 
aus.

Um das Problem einzukreisen habe ich folgenden kleinen Code verwendet:
-----------------------------------------------------------------
$regfile = "m128def.dat"  'Atmega128-declarations
$crystal = 14745600

Ddrb = &B10000000    'piezo speaker on port b.7

Dim I As Byte      'general purpose counter var

For I = 1 To 128
Portb.7 = Not Portb.7    'invert piezo speaker
Waitms 3
Next I


Main:
Portb.7 = Not Portb.7    'invert piezo speaker
Waitms 10
Goto Main
-----------------------------------------------------------------
An portb.7 hängt ein Piezospeaker, sonst gibt es in meinem Aufbau keine 
Peripherie.

Während der Initialisierung wird der Speaker nun 128 mal zum Schwingen 
gebracht - jeweils mit 3ms Pause. Ich kann dann einen hohen Ton hören. 
Nun geht das Programm über in die Hauptschleife und aus dem Speaker 
kommt ein tieferer Ton (da 10ms Pause).

Soweit läuft alles wie erwartet. Nun folgt das Verwirrende: Der tiefe 
Ton wird nicht ewig gespielt, sondern nur etwa doppelt so lange wie der 
hohe. Anschließend höre ich wieder den hohen Ton und das Ganze beginnt 
von vorne.

Auf mich macht es den Eindruck, als würde der Controller etwa jede 
Sekunde einen Reset durchführen, zumal auch alle Variablenwerte verloren 
gehen (habe ich mit einem anderen Test herausgefunden).

Ich habe das mit zwei unterschiedlichen Crumb128-Modulen getestet - das 
Ergebnis war jeweils gleich. Auf einem Atmega8 habe ich den Code auch 
getestet - der verhält sich allerdings wie erwartet und spielt den hohen 
Ton nur einmal ab, anschließend durchgehend den tiefen.

Ich hoffe jemand hat einen heißen Tipp, wo die Ursache meines Problems 
liegt und Danke schonmal!

Niklas.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Watchdog-Timer deaktiviert?

Autor: Niklas Roy (niklas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WDTON=0, also deaktiviert. Das Problem scheint ein anderes zu sein.

Autor: Niklas Roy (niklas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hah, nee, Sorry! Vielen Dank, Johnny! Das war das Problem! Jippie! Die 
Scheiße läuft!

Niklas :-)

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...Die Scheiße läuft!

Igitt...

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
johnny.m wrote:
>> ...Die Scheiße läuft!
>
> Igitt...

Klingt stark nach Durchfall ;o)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.