Hallo zusammen, Ich habe folgende Fragen an euch: a) Warum müssen Peripherie-Ports auf einem Mikrocontroller „initialisiert“ werden? b) Welche Aufgabe hat diese Operation z.B. bei einem Parallel-Port? Gruß. Thomas
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.
Max hat es bereits erwähnt. Die Pins haben sind fast durchgehenden für mehrere Zwecke einsetzbar. Mit dem initialisieren legst du bspw. fest, ob es sich um einen Pin um einen Ausgang, Eingang handelt.
SORRY aber brauche noch mehr info bitte! ich verstehe das nicht ganz genau! Gruß
Besorge dir Lektüre! Was ist darn nicht zu verstehen? Fritz ist gut im 50, 100 und 1000m Lauf. Fritz muss aber wissen, wieviel er laufen muss. Wird ihm gesagt, er soll 1000m laufen, dann stellt er sich auf 1000 ein und nicht auf einen kurzen Sprint von 50m. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports
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
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.
Thomas Fleischer schrieb: > b) Welche Aufgabe hat diese Operation z.B. bei einem Parallel-Port? An dieser Stelle sollte man vielleicht noch erwähnen, daß ein µC so etwas wie einen "Parallelport" eher nicht hat. Genau genommen ist "Parallelport" noch nicht mal ein exakt definierter Begriff. Man verwendet ihn häufig als Synonym für "Druckerport an einem PC". XL
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.
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
S. R. schrieb: > Das Semester fängt wieder an, was? Das wäre aber noch früh. Ich tippe eher auf einen gemeinen Troll...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.