Autor |
|
|
|
BID = 108248
Midnight Stammposter
Beiträge: 256
|
|
Hallo,
ich habe ein kleines Problem....
Ich habe einen AtMega32 den ich unter Bascom programmiert habe.
Um Rechenleistung zu sparen habe ich über nen OP als Komparator ne Betriebsspannungsüberwachung die die schon deutlich über der Dropspannung des Spannungsreglers den INT0 auslöst, und per Interruptroutine eine Warnung ausgiebt und auch wartet bis der Fehler weg ist.
Nun mein Problem, ich kann natürlich nicht bestimmen wann die Betriebsspannung sinkt und damit auch nicht festlegen wann der Interrupt ausgelöst wird.
Leider sind einige Routinen unter Bascom scheinbar ziemlich empfindlich für Interrupts (ATAN2 z.B. mag nicht unterbrochen werden).
Ich möchte aber sicherstellen das nach dem Fehler alles sofort wieder korrekt läuft.
Bis jetzt behelfe ich mir damit, da der Watchdog eh läuft, ich den wieder am Ende der Interruptroutine starte und per Warteschleife einen Reset abwarte.
Finde ich aber unschön, kann man nicht irgendwie nen Reset Softwaremäßig auslösen?
Gruß
Simon |
|
BID = 108280
Jornbyte Moderator
Beiträge: 7178
|
|
Springe an den Anfang des Programm's, das ist auch ein Reset.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten. |
|
BID = 109916
Midnight Stammposter
Beiträge: 256
|
Wenn ich an den Anfang des Programmes springe, wie siehts dann mit ggf. gesetzten Ports oder Flags aus?
Wenn ich ihn durch den Deklarationsteil laufen lasse ist dann auch alles wieder im Ursprungszustand wie bei nem Reset, oder kann es sein, das Bits unkontrolliert gesetzt bleiben?
Gruß
Simon
|
BID = 109923
Benedikt Inventar
Beiträge: 6241
|
Es kann durchaus sein, dass irgendwelche Flags gesetzt bleiben, wenn du nicht wirklich alles neu setzt.
Der ATMega hat doch eine Brown Out Detection. Sinkt die Spannung unter irgendwas um die 4,5V oder 2,7V (je nach BOD Level) dann wird ein Hardware Reset gemacht, also kannst du dir den ganzen Aufwand leicht sparen.
|
BID = 109937
Midnight Stammposter
Beiträge: 256
|
@Benedikt:
Der Atmega ist nicht das Einzige was in der Schaltung mit Spannung versorgt wird. Es gibt auch noch einen 12V Teil , der auch überwacht werden muß um die Funktionssicherheit zu gewährleisten.
Ich muß schon deutlich über 5V Eingangsspannung nen Alarm haben.
Wenn der Atmega nicht mehr läuft kann ich auch keinen Alarm mehr ausgeben
Gruß
Simon
|
BID = 110114
Benedikt Inventar
Beiträge: 6241
|
Dann häng doch Reset an einen Pin, externer Pullup und einfach den Pin per Software an Masse, fertig ist der Reset.
|
BID = 110321
Midnight Stammposter
Beiträge: 256
|
Genau so eine simple Lösung meinte ich
Thanx
Simon
|