Forum: Mikrocontroller und Digitale Elektronik DDR-Ports >>> C-Programmierung


von __Son´s B. (bersison)


Lesenswert?

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
von Falk B. (falk)


Lesenswert?

@__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.

von Tany (Gast)


Lesenswert?

__Son´s B. schrieb:
> Sind die anderen Ports automatisch auf 0 == Eingang gesetzt?

Nein
DDRD |= (1<<PD1  =>> DDRD = DDRR | (1<<PD1)

von __Son´s B. (bersison)


Lesenswert?

__Son´s B. schrieb:
> Sind die anderen Ports automatisch auf 0 == Eingang gesetzt?

...dabei meinte ich, unmittelbar nach dem Programmstart, vor der ersten 
Definition.

von Karl M. (Gast)


Lesenswert?

bersison,

diese Frage beantwortet mir ein Atmel Datenblatt zu einem Dir 
unbekannten AVR µC. ?! RTFM

von M. K. (sylaina)


Lesenswert?

__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.

von __Son´s B. (bersison)


Lesenswert?

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...

von Peter II (Gast)


Lesenswert?

__Son´s B. schrieb:
> Welche Zustände ausser 0 und 1 kann es überhaupt geben?

undefiniert. Also bei jedem Start anders.

von spess53 (Gast)


Lesenswert?

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

von Amateur (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

_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)

von Rolf M. (rmagnus)


Lesenswert?

Man fragt sich ja manchmal schon, wie offensichtlich man es noch machen 
kann, damit es auch wirklich jeder findet.

von Falk B. (falk)


Lesenswert?

Hörbuch? App? 24h Notfallbetreuung durch Foren?

von __Son´s B. (bersison)


Lesenswert?

DANK SCHÖN
an die, die mir konstruktive Tipps geben wollten & konnten!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.