DDRB Pin

TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

DDRB Pin

 · 
Gepostet: 10.05.2016 - 11:52 Uhr  ·  #1
Habe mal eine kleine Frage zu DDRB an einen AtMega 328p

Code

Procedure Set_Input;
Begin
 DDRB.0 := 0;
end Set_Input;

Procedure Set_Output;
Begin
 DDRB.0 := 1;
end Set_Output;


warum bekomme ich an Ausgang jedesmal einen anderen Zustand ? obwohl ich
PortB alle PullUp auf $0 geschaltet habe ? Ich hatte gedacht das man DDRB setzen
kann, ohne das sich der Pegel verändert.


Gruß Frank
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: DDRB Pin

 · 
Gepostet: 10.05.2016 - 14:31 Uhr  ·  #2
Hallo Frank,

wenn man einen Pin auf Input schaltet dann wird ein ggf. aktiver Pullup
beim zurücklesen des Ports den Pin auf 1 setzen und es ist auch eine 1
direkt am Pin zu messen.
Wenn man den Pin auf Output schaltet, dann erscheint der Pegel am
Pin, der durch ein vorhergegangenes Schreiben auf den Port eingestellt
wurde, unabhängig vom Pullup etc.

rolf
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: DDRB Pin

 · 
Gepostet: 10.05.2016 - 15:47 Uhr  ·  #3
Danke Rolf,

ich habe es auch gerade mit bekommen, es ist mein Aktiver Externer Pullup.
Wenn ich Portb auf 1 setze, wäre alles ok, dann könnte ich ein oder ausgang
schalten.



Gruß Frank
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.037362s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI