Forum: Mikrocontroller und Digitale Elektronik Port Init bei Reset


von Steffen (Gast)


Lesenswert?

Hi Leute,

muss bei meinem Pic 18F458 ein Verhalten feststellen das ich mir nicht 
ganz erklären kann:

Bei instabiler Spannungsversorgung kann es vorkommen, dass ein 
Peripheriegerät am PORTD angesteuert wird, obwohl dies nicht gewünscht 
(Pin an PORTB nicht auf Masse gezogen) ist.

Beispielhaft wird folgender Code verwendet:

// PORTB Interrupt
LATD an Pin X auf 1 setzen

// UserFct - wird bei jedem Start des Pics aufgerufen
vInitABCD()
{
LATD = 0;
TRISD = 0;
PORTD = 0;
}

///////////////////////////////////////////////////////////
// Tatsächliches Programm
main()
{
// Register in sicheren Zustand bringen
// Wird bei jedem Neustart und bei jedem Reset ausgeführt
vInitABCD()

// Config
Register richtig setzen (TRISD = 0x00, TRISB = 0xFF, ....)

while(1)
{
// Berechnungen, Ausgaben, ......
}
}

Die Peripherie wird angesteuert, wenn der Pin an PORTD auf TRUE geht.

Kann es jetzt vorkommen, dass PORTD kurzzeitig auf TRUE geht sobald die 
Spannung einbricht oder Überschwinger aufweist??
Werden die Register falsch initialisiert (falsche Stelle -> main wird 
doch auch nach jedem Reset ausgeführt oder...., falsche Reihenfolge 
(muss erst TRISB, dann LAT oder erst LAT dann TRISB...)

Ich hoffe das reicht als Input um mir bei meinem Problem weiterzuhelfen.


Vielen vielen Dank im Voraus.

Gruß Steff

von Andreas U. (Gast)


Lesenswert?

Wenn die versorgerspannung nicht ausreichent ist für den PIC dann kann 
ich mir durchaus vorstellen das er irgendwelches wirres zeug macht. 
Kanst die Spannugn ja vieleicht mit einem Kondensator stabilisieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.