Forum: Mikrocontroller und Digitale Elektronik Eingang am Attiny


von Frank (Gast)


Lesenswert?

Hallo,
ich weiss nicht, wie ich den eingang richtig schalten soll.
1
DDRB &= ~(1<<PB4);  
2
  PORTB |= (1<<PB4);

sobald ich jetzt den pin PB4 (ist ein Attiny) mit GND verbinde, schaltet 
der Eingang.
1
if(!(PINB&(1<<PINB4)))

Also ist der Eingang im prinzip die ganze zeit High und wird Low, wenn 
ich die verbindung trenne.

Ich hätte aber gerne, dass der Eingang die ganze Zeit auf Low ist und 
ich im prinzip die Verbindung von plus zum pin verbinde und somit der 
Eingang auf High wird.

Da habe ich allerdings keinen plan wie ich das anstellen soll. Hat da 
wer einen rat für mich?

von Kai S. (kai1986)


Lesenswert?

Hallo,

mit der Zeile
PORTB |= (1<<PB4);
hast du den internen Pullupwiderstand aktiviert, den du allerdings nicht 
möchtest. Das Register PORTB musst du an dem gewünschten Pin einfach auf 
0 setzen, dann kannst du es extern machen, so wie du es haben möchtest 
(Schalter zwischen VCC und Pin und Pulldown zwischen Pin und GND).

Hier ist dazu einiges erklärt:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Pullup-Widerstand

Gruß Kai

: Bearbeitet durch User
von chris (Gast)


Lesenswert?

Kai S. schrieb:
> mit der Zeile
> DDRB &= ~(1<<PB4);
> hast du den internen Pullupwiderstand aktiviert,

falsch. damit hat er den Pin als Eingang konfiguriert.

Frank schrieb:
> PORTB |= (1<<PB4);

hier wird der Pullup aktiviert.
d.h. diese Zeile weglassen und einen externen Pulldown verwenden.

Allerdings spart man sich idR den externen Widerstand und benutzt den 
internen Pullup, weil es vollkommen egal ist, welche Pegel am Pin 
anliegen.

Dich interessiert ja nur:
"Taste gedrückt" oder "Taste nicht gedrückt"
Dafür ist der Pegel am Pin irrelevant

lg
Chris

von Kai S. (kai1986)


Lesenswert?

chris schrieb:
> Kai S. schrieb:
>> mit der Zeile
>> DDRB &= ~(1<<PB4);
>> hast du den internen Pullupwiderstand aktiviert,
>
> falsch. damit hat er den Pin als Eingang konfiguriert.

Ja, hab ich nach dem Abschicken auch gemerkt und auch schon korrigiert.

Gruß Kai

von Frank (Gast)


Lesenswert?

Dann werde ich es wohl so lassen. Nichts desto trotz vielen dank für die 
Hinweise und auch für die Tutorial-Seite

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.