12.11.2012 Aufrufe

Programmierung der AVR-Microcontroller mit C - UlrichRadig.de

Programmierung der AVR-Microcontroller mit C - UlrichRadig.de

Programmierung der AVR-Microcontroller mit C - UlrichRadig.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Active Low Active High<br />

Bei dieser Metho<strong>de</strong> wird <strong><strong>de</strong>r</strong> Kontakt zwischen<br />

<strong>de</strong>n Eingangspin <strong>de</strong>s Controllers und Masse<br />

geschaltet.<br />

Da<strong>mit</strong> bei offenem Schalter <strong><strong>de</strong>r</strong> Controller kein<br />

un<strong>de</strong>finiertes Signal bekommt wird zwischen die<br />

Versorgungsspannung und <strong>de</strong>n Eingangspin ein<br />

sogenannter Pull-Up Wi<strong><strong>de</strong>r</strong>stand geschaltet.<br />

Dieser dient dazu, <strong>de</strong>n Pegel bei geöffnetem<br />

Schalter auf logisch 1 zu ziehen.<br />

Der Wi<strong><strong>de</strong>r</strong>standswert <strong>de</strong>s Pull-Up Wi<strong><strong>de</strong>r</strong>stands<br />

ist an sich nicht kritisch. Es muss jedoch<br />

beachtet wer<strong>de</strong>n, dass über <strong>de</strong>n Wi<strong><strong>de</strong>r</strong>stand ein<br />

Strom in <strong>de</strong>n Eingang fliesst, also sollte er nicht<br />

zu klein gewählt wer<strong>de</strong>n um <strong>de</strong>n Controller nicht<br />

zu zerstören. Wird er allerdings zu hoch gewählt<br />

ist die Wirkung eventuell nicht gegeben. Als<br />

üblicher Wert haben sich 10 Kiloohm<br />

eingebürgert.<br />

Die <strong>AVR</strong>'s haben sogar an <strong>de</strong>n meisten Pins<br />

softwaremässig zuschaltbare interne Pull-Up<br />

Wi<strong><strong>de</strong>r</strong>stän<strong>de</strong>, welche wir natürlich auch<br />

verwen<strong>de</strong>n können.<br />

5.4.2 PULL-UP WIDERSTÄNDE AKTIVIEREN<br />

Hier wird <strong><strong>de</strong>r</strong> Kontakt zwischen die<br />

Versorgungsspannung und Masse geschaltet.<br />

Da<strong>mit</strong> bei offener Schalterstellung kein<br />

un<strong>de</strong>finiertes Signal am Controller ansteht wird<br />

zwischen <strong>de</strong>n Eingangspin und die Masse ein<br />

Pull-Down Wi<strong><strong>de</strong>r</strong>stand geschaltet. Dieser dient<br />

dazu, <strong>de</strong>n Pegel bei geöffneter Schalterstellung<br />

auf logisch 0 zu halten,<br />

Die internen Pull-Up Wi<strong><strong>de</strong>r</strong>stän<strong>de</strong> von Vcc zu <strong>de</strong>n einzelnen Portpins wer<strong>de</strong>n über das Register<br />

PORTx aktiviert bzw. <strong>de</strong>aktiviert, wenn ein Pin als Eingang geschaltet ist.<br />

Wird <strong><strong>de</strong>r</strong> Wert <strong>de</strong>s entsprechen<strong>de</strong>n Portpins auf 1 gesetzt so ist <strong><strong>de</strong>r</strong> Pull-Up Wi<strong><strong>de</strong>r</strong>stand aktiviert.<br />

Bei einem Wert von 0 ist <strong><strong>de</strong>r</strong> Pull-Up Wi<strong><strong>de</strong>r</strong>stand nicht aktiv.<br />

Man sollte jeweils entwe<strong><strong>de</strong>r</strong> <strong>de</strong>n internen o<strong><strong>de</strong>r</strong> einen externen Pull-Up Wi<strong><strong>de</strong>r</strong>stand verwen<strong>de</strong>n, aber<br />

nicht bei<strong>de</strong> zusammen.<br />

outp (0x00, DDRD); // Port D als Eingang schalten<br />

outp (0x00, PORTD); // Interne Pull-Up Wi<strong><strong>de</strong>r</strong>stän<strong>de</strong> aus<br />

Im Beispiel wird <strong><strong>de</strong>r</strong> gesamte Port D als Eingang geschaltet und alle Pull-Up Wi<strong><strong>de</strong>r</strong>stän<strong>de</strong><br />

<strong>de</strong>aktiviert.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!