Peripherie-Ports auf einem Mikrocontroller initialisiert

#3772214
Lesenswert?

Thomas Fleischer schrieb:
> a) Warum müssen Peripherie-Ports auf einem Mikrocontroller
> „initialisiert“   werden?
Weil sie vllt. mehr als eine Funktion haben und man erst konfigurieren 
muss welche man wie nutzen will.

Wenn du mit dem Programmieren anfängst wirst du sicher merken wieso...

Thomas Fleischer schrieb:
> b) Welche Aufgabe hat diese Operation z.B. bei einem Parallel-Port?
Das wird dir das Datenblatt sicher verraten.
Gast #3773487
Lesenswert?

Thomas Fleischer schrieb:
> SORRY aber brauche noch mehr info  bitte! ich verstehe das nicht ganz
> genau!

Die Antworten bezogen sich genau auf Deine Fragen und sind, so abstrakt 
sie gestellt sind ebenso erschöpfend beantwortet.
Man könnte sie höchstens noch paraphrasieren, was ich auch gerne 
unternehmen will. Aber es ist unklar, welche Informationen Du brauchst. 
Versuche Deine Frage präziser zu stellen. Was verstehst Du nicht?

Hier noch die versprochene Paraphrase:

> a) Warum müssen Peripherie-Ports auf einem Mikrocontroller „initialisiert“ 
werden?

Um sie in einen definierten Anfangszustand zu bringen und um eine von 
mehreren möglichen Funktionsweisen auszuwählen. Beide Punkte hängen 
zusammen und überschneiden sich begrifflich sind aber verschieden.

Ein Timer z.B. könnte theoretisch bei seinem Maximalwert oder bei 
einem wilkürlichen, vom Programmierer gewählten Wert eine bestimmte 
Aktion auslösen. Das sind schonmal zwei Möglichkeiten, unter denen man 
wählen muss. Die Aktion wiederum könnte ein Neustart des Zählers bei 
Null sein oder ein rückwärts zählen bis Null und erneutem Wechsel der 
Zählrichtung sein. Das sind Beispiele für den einen Aspekt - Auswahl von 
Funktionsweisen. Im Fall, das der Zähler bis zu einem wilkürlichen Wert 
zählen soll, muss auch dieser Wert gesetzt (initialisiert) werden. Das 
ist der zweite Aspekt - Anfangsbedingung.

> b) Welche Aufgabe hat diese Operation z.B. bei einem Parallel-Port?
Genau die oben geschriebene, nur eben speziell auf einen Parallel-Port 
bezogen. Dessen Initialisierung wird sich von der eines Timer und diese 
wiederum von der eines I2C-Bus-Interfaces unterscheiden.

Gruß
Bitflüsterer
Gast #3773497
Lesenswert?

Bitflüsterer schrieb:
> Um sie in einen definierten Anfangszustand zu bringen und um eine von
> mehreren möglichen Funktionsweisen auszuwählen.

Einen definierten Zustand nehmen die Ports beim Reset des µC 
normalerweise schon an. Diese Standardkonfiguration wird aber i.A. nicht 
zu der Aufgabe, die sie in deiner Schaltung übernehmen sollen, passen.
Gast #3773696
Lesenswert?

Bei allen mir bekannten Microcontrollern ist es so, dass alle GPIOs 
(General Purpose Inputs Outputs) nach Reset einen passiven hochohmigen 
Zustand haben.
Das ist auch nötig, weil der µC nach dem Reset noch nicht wissen kann, 
ob ein Pin als Eingang oder Ausgang verwendet werden soll.
Stell Dir vor Du legst von außen einen 5V-Pegel an einen Pin und der µC 
würde nach Reset diesen Pin erstmal als Ausgang mit Low-Pegel 
initialieren -> Kurzschluss!

Aus diesem Grund haben alle Pins nach Reset definierte Zustände, und 
diese sind im Datenblatt genau beschrieben.
Wenn der definierte Reset-Zustand zufällig genau dem entspricht, was Du 
mit dem Pin machen willst, musst Du nichts initialisieren oder 
konfigurieren.
Falls Du etwas anderes machen willst, z.B. den Pinne als Ausgang 
verwenden, musst Du das dem Pinne sagen, sonst kann er es nicht wissen.
#3773806
Lesenswert?

Bronco schrieb:
> Wenn der definierte Reset-Zustand zufällig genau dem entspricht, was Du
> mit dem Pin machen willst, musst Du nichts initialisieren oder
> konfigurieren.

Wobei es selbst dann Sinn machen kann, um seine Intentionen explizit zum 
Ausdruck zu bringen und die Portierung auf andere Mikrocontroller / 
Plattformen zu erleichtern/ermöglichen. Eine "init" Funktion - oder 
ähnliches - jedenfalls hat noch keinem Modul geschadet ;).

Mit freundlichen Grüßen,
Karol Babioch

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