www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA128 resetet sich automatisch...


Autor: Boese (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit,

Hab hier ein Versuchsaufbau mit einem ATMEGA128. Der Controller resetet
sich nach ca. 2 Sekunden Automatisch, obwohl er mitten in einer Schleife
steckt.

Hier das Bascom-Programm:

$baud = 9600
$regfile = "m128def.dat"
Config Serialin = Buffered , Size = 20
$crystal = 16000000
Enable Serial
Config Pinb.6 = Output
stop watchdog

print "Start"
Do
print "Test"
Loop

end


Weiß jemand Rat?

Gruss

Jan

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> stop watchdog

Wozu das?

Autor: boese (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wozu das?

ich dachte zuerst der Watchdog sei dafür verantwortlich dass der uC
sind ständig selbst resettet....

Gruss

Jan

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Resettet er sich auch, wenn du das print aus der Schleife rausnimmst?

Autor: Boese (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thorsten,

Ja, dann resettet er sich weiterhin :(((

Gruss

Jan

Autor: Denis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stacküberlauf?
watchdog per fuses ausgeschaltet?
spannungszusammenbruch?

Autor: boese (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Denis,

Watchdog per Fuses? Seh ich in Ponyprog gar nicht, dass man den direkt
deaktivieren kann...
Spannung ist stabil

Woran erkenne ich ein Stacküberlauf?

Gruss

Jan

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt Bascom sowas wie ein Hex-File aus? Wenn ja, kannst du das ja mal
ins AVR Studio laden und durch simulieren. Vielleicht hilft das weiter.
Oder wenn du dich mit Assembler schwer tust, poste doch mal das
Hex-File. Ich kanns mir mal ansehen.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

du kannst auch direkt in Bascom simulieren. Der Simulator zeigt ein
Stackoverflow an , aber bei diesem kleinen Prg wird es nicht am STack
liegen.

Der 103er Mode ist nicht aktiv? Probier doch mal ein anderes kleines
Prg. ohne Serial.

Blockkondensatoren befinden sich an VCC und GND? Pullup am Reset Pin?

Kann man die Hardware ausschliessen?

Mfg
Dirk

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er führt möglicherweise die Schleife nur genau einmal durch, obwohl es
eine Endlosschleife ist. Das Problem ist bei mir mal aufgetreten als
ich eine do{}while(1) Schleife gemacht habe. Das Schlüsselwort volatile
hat das Problem gelöst.

mfg Chris ;)

Autor: boese (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@christian

> Das Schlüsselwort volatile hat das Problem gelöst.

was meinst du damit?

Im Anhang das Hex-File was bascom produziert hat.

@Dirk

M103 Mode ist in PonyProg unchecked (unprogrammiert) = logisch eins.
werd mal ein anderes Prog testen...

Pullup ist am Reset dran, dort auch 47 pico Farad gegen Masse, am
Festspannungsregler 1x 10 uF, 2 x 100 nF, und heute hab ich direkt vor
alle GND und V+ Eingänge am Controller noch jeweils 1x 100 nF gehängt
(ich glaube dadurch wurde der Abstand ein wenig größer bis zum nächstes
Reboot, kann aber auch Zufall gewesen sein...)

Es ist zum verweifeln :((((((((

Gruss

Jan

Autor: boese (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hab mal das ganze ohne Serielle Schnittstelle getestet, also nur
einen Port getoggelt (an, aus)...

Meine fuses sehen so aus:

Programmiert sind (logisch null): Bootz1, Bootz0, BootRst, SUT0, WDTON


und genau WDTON mal fix im Datenblatt nachgeschaut, deaktiviert, und
schon läufts perfekt!!!!!

Da sitzt mal fast n Tag dran, nur wegen so einem blöden Fusebit ;)
hehe

Danke aber für eure Hilfe!

Gruss

Jan

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
volatile : Sagt dem Compiler das eine Variable außerhalb des normalen
Programmablaufs geändert wird bzw das er hier nichts wegoptimieren
soll.
Endlosschleifen werden oft vom Compiler rausgeschmissen weil er erkennt
das der durchlauf "überflüssig" ist.

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.