Gast
#870550
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