Hallo Freunde der Ströme. Folgend eine Verständnisfrage; Wenn ich einen Ausgang mit DDRD |= (1<<PD1); definiere, welchen Zustand haben die anderen Ports der DDRD-Reihe? Sind die anderen Ports automatisch auf 0 == Eingang gesetzt?
:
Bearbeitet durch User
@__Son´s Bersi__ (bersison) >Wenn ich einen Ausgang mit >DDRD |= (1<<PD1); >definiere, welchen Zustand haben die anderen Ports der DDRD-Reihe? Den, den sie vor dem Zugriff hatten. Es wird nur Bit 1 gesetzt, siehe Bitmanipulation. >Sind die anderen Ports automatisch auf 0 == Eingang gesetzt? Direkt nach dem Reset/Programmstart? Ja.
__Son´s B. schrieb: > Sind die anderen Ports automatisch auf 0 == Eingang gesetzt? Nein DDRD |= (1<<PD1 =>> DDRD = DDRR | (1<<PD1)
__Son´s B. schrieb: > Sind die anderen Ports automatisch auf 0 == Eingang gesetzt? ...dabei meinte ich, unmittelbar nach dem Programmstart, vor der ersten Definition.
__Son´s B. schrieb: > ...dabei meinte ich, unmittelbar nach dem Programmstart, vor der ersten > Definition. Kommt drauf an wie das Register nach einem Reset definiert ist. Mit deiner Anweisung setzt du lediglich ein Bit, hier das an der Stelle 1 (Achtung: Wir beginnen hier immer bei 0 mit dem Zählen). Du kannst auch andere Register haben die nach einem Initialisieren nicht 0 gesetzt sind. Wie sie genau gesetzt sind nach einer Initialisierung verrät dir das Datenblatt zum jeweiligen Mikrocontroller.
Mir geht es um ATmega´s und ATtiny´s. Wo genau steht der "Ursprungs-Zustand" im Datenblatt? Welche Zustände ausser 0 und 1 kann es überhaupt geben? Nach meinem (Bauch-)Verständniss, müsste es doch 0 sein, solang ich das Port nicht gesondert mit 1 zuweise...
__Son´s B. schrieb: > Welche Zustände ausser 0 und 1 kann es überhaupt geben? undefiniert. Also bei jedem Start anders.
Hi
>Wo genau steht der "Ursprungs-Zustand" im Datenblatt?
Für Ports:
I/O-Ports->Register Description
Und da findest du zu jedem Register den Initialwert (Initial Value).
MfG Spess
Das letzte Mal, als ich bei Atmels war, standen die Registerfunktionen zusammen mit den Reset-Werten im Handbuch. Ich finde es immer toll, wenn diese Foren genutzt werden um sich das Lesen des Handbuchs zu ersparen. Nebenbei gesagt: Die Reset-Werte werden z.T. vom jeweiligen Prozesssor abhängig und auch im Hause Atmel nicht vereinheitlicht worden sein. Also kommst Du sowohl, was die Funktion betrifft, als auch den Reset-Status, nicht ums Lesen herum.
_Son´s B. schrieb: > Mir geht es um ATmega´s und ATtiny´s. > Wo genau steht der "Ursprungs-Zustand" im Datenblatt? Hier (siehe Bild) Leicht zu finden über das Inhaltsverzeichnis im Abschnitt mit der absolut naheliegenden Überschrift "I/O Ports" und dort wieder im Unterpunkt "Register Description" (siehe nächstes Bild)
Man fragt sich ja manchmal schon, wie offensichtlich man es noch machen kann, damit es auch wirklich jeder findet.
DANK SCHÖN an die, die mir konstruktive Tipps geben wollten & konnten!
Um noch ein Beispiel für ein Register zu zeigen, bei dem nach Reset mal nicht alle Bits auf 0 stehen: das dritte Steuerregister der USART. Die Bits sind nämlich so voreingestellt, dass sich der besonders häufig gewünschte Fall („8N1“) als Resetwert ergibt, sodass man dieses Register nur anfassen muss, wenn man irgendwelche exotischen Frameformate benötigt.
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.