www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Port Init bei Reset


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas U. (aschi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.