Programmierung der AVR-Microcontroller mit C - UlrichRadig.de
Programmierung der AVR-Microcontroller mit C - UlrichRadig.de
Programmierung der AVR-Microcontroller mit C - UlrichRadig.de
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.