PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Board resettet spontan...Spannungsschwankungen



kleinstar
30.05.2007, 14:45
Hi,
ich habe ein Problem: das Controller Board resettet immer spontan (mega 32, rn lcd), kann das an Spannungsschwankungen der Spannungsquelle liegen und der Chip resettet, wenn die Spannung einen Schwellwert überquert?wie kann man sowas in Bascom auschalten? oder fusebits?..
danke schön

for_ro
30.05.2007, 15:55
Lass dir doch zuerst einmal den Inhalt des MCUCSR Registers (Bit 0-3) direkt nach dem Neustart ausgeben, dann kannst du sehen, warum der Controller resettet hat. Siehe auch Seite 40 vom Mega32 Manual.

Gruß

Rolf

Vitis
30.05.2007, 22:56
brown out evtl. deaktivieren

kleinstar
31.05.2007, 11:53
Dankeschön!
ich hab mir das ma angeschaut mit dem brown out..und hab sogar im englischen DB nachgeschaut und hat zum ersten mal was gebracht!
: kannich mit dem fusebit boden den vcc trigger vergleich ein und ausschalten.. das steht bei mir schon auf disabled und der level auf 2,7V...

also hat der reset nen andern Grund...aber register ausgeben, weißich nich wie und das müsstich ja nach so einem selbstreset anschauen.. das passiert nich so oft...
weiß einer , was das noch sein kann?
wennich den watchdog nich eingestellt hab, is der ja dann aus, gell?
danke roland

TobiWan
31.05.2007, 14:02
Du könntest ja mal erzählen, wie deine Spannungsversorgung ausschaut und was dran hängt...

Ich hatte mal das selbe "Problem", dabei hat sich herausgestellt, dass beim Starten von Bascom ein Reset gesendet wird, und dass es nicht an meiner Schaltung liegt :-D

for_ro
31.05.2007, 14:43
also hat der reset nen andern Grund...aber register ausgeben, weißich nich wie und das müsstich ja nach so einem selbstreset anschauen.. das passiert nich so oft...
weiß einer , was das noch sein kann?
wennich den watchdog nich eingestellt hab, is der ja dann aus, gell?
danke roland

Deswegen im MCUCSR nachsehen, ansonsten kannst du noch lange überlegen, was den ausgelöst hat. Und wenn du den Reset kennst, weisst du ja immer noch nicht warum, aber du suchst wenigstens nicht in der falschen Richtung.

Vor deinem Hauptprogramm speicherst du den Wert des Registers einfach in eine Variable

Reset_Flags=MCUCSR AND &B00001111 'nur Bit 0-3

Anschliessend setzt du die Flags des Registers zurück

MCUCSR=MCUCSR AND &B11110000 'Bit 0-3 auf 0 setzen, Bit 4-7 nicht ändern

Dann kannst du dir später im Programm in aller Ruhe die Flags printen oder auf dem LCD ausgeben.

Gruß

Rolf