DDRB Pin

TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 770
Registered: 06 / 2013
Subject:

DDRB Pin

 · 
Posted: 10.05.2016 - 11:52  ·  #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
Gender:
Location: Germany
Age: 25
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: DDRB Pin

 · 
Posted: 10.05.2016 - 14:31  ·  #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
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 770
Registered: 06 / 2013
Subject:

Re: DDRB Pin

 · 
Posted: 10.05.2016 - 15:47  ·  #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
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.02171s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI