Seltsames µC Verhalten nach Unterbrechung von UB

Gast #1232989
Lesenswert?
• ▲
▼
Hallo,

ich habe folgendes Problem:
Wenn ich meinen PIC im Releasemodus programmiere und dann in MPLAB 
starte, stoppe und anschließend wieder starte verhält sich der PIC wie 
gewünscht.

Wenn ich aber die Spannungsversorgung des PICs unterbreche und 
anschließend wieder anschließe, beginnt er nicht am Anfang einer 
Switchstruktur sondern bereits bei Nr.2.

Ich habe auch schon überprüft, ob er überhaupt am Beginn des Programms 
beginnt, das tut er. Direkt vor der Switchstruktur setzte ich auch die 
Variable nochmal auf eins, aber trotzdem beginnt er bei 2.

Die Switchvariable wird durch einen Interrupt inkrementiert.

Was kann ich tun?

Danke für Eure Hilfe!


Gruß Thomas
Gast #1232999
Lesenswert?
• ▲
▼
Thomas R wrote:
> Wenn ich aber die Spannungsversorgung des PICs unterbreche und
> anschließend wieder anschließe, beginnt er nicht am Anfang einer
> Switchstruktur sondern bereits bei Nr.2.
>
> Ich habe auch schon überprüft, ob er überhaupt am Beginn des Programms
> beginnt, das tut er. Direkt vor der Switchstruktur setzte ich auch die
> Variable nochmal auf eins, aber trotzdem beginnt er bei 2.
>
> Die Switchvariable wird durch einen Interrupt inkrementiert.

Schön... schön...

> Was kann ich tun?

Quelltext posten?
Gast #1233332
Lesenswert?
• ▲
▼
Ohne jetzt den Code unter die Lupe genommen zu haben fallen mir noch was 
ein:

Wie verhält sich der Controller, wenn er im Laufenden Betrieb reseted 
wird? Zeigt er dann auch dieses Fehlverhalten, oder wird das Programm 
dann korrekt abgearbeitet?

Wenn ja: eventuell steigt die Spannungsversorgung zu langsam an, so dass 
der Controller schon mit der Abarbeitung des Programms beginnt bevor 
eine für den sicheren Betrieb ausreichende Betriebsspannung zur 
Verfügung steht. In diesem Falle wäre die Reset-Beschaltung zu 
überdenken...

Wenn nein: dann wirds allmählich interessant ;)
Gast #1233340
Lesenswert?
• ▲
▼
hast du den startuptimer eingeschaltet? wenn nicht, dann mach das mal.

kann sein das deine versorgung direkt nach dem einschalten noch nicht so 
wirklich sauber is und die 72ms die er dann wartet bringen dich wohl 
auch nicht um :)
Gast #1233398
Lesenswert?
• ▲
▼
Wenn es der C18 Compiler ist:

Je nach verwendetem Linker-script werden nicht alle Variablen 
initialisiert.
So nen Fehler hab ich auch mal lange gesucht bis mir der Mircochip 
Supporter das script angepasst hat.
Gast #1233458
Lesenswert?
• ▲
▼
Guten Morgen,

schon mal danke für Eure Tipps!
Also: Den Powerup Timer habe ich verwendet, leider ohne Erfolg. Wenn ich 
den Controller resete, funktioniert auch alles wie gewünscht!


@ttl: weißt Du in welcher Form das Linker Script angepasst wurde? Was 
war das für ein PIC? Ich verwende den 18F452.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren