Das Ein- und Ausschalten wird meines Erachtens bei
Mikroprozessor-Büchern, Artikeln etc. viel zu einfach gesehen, wie ich
jetzt bei vielen Schaltungen schon bemerkt habe.
Beim Einschalten einer LED ists ja wirklich recht einfach.
1 | Config PORTD.1=Output
|
2 | PORTD.1 = 1 'wieder ein
|
3 | PORTD.1 = 0 'wieder aus
|
Aber beim Schalten eines Senders gegen Masse wirds komplizierter, noch
dazu wenn der auch manuell gegen Masse geschaltet werden kann.
1 | CONFIG PORTD.1=Output
|
2 | PORTD.1 = 0 'Sender ein
|
3 | Waitms 500
|
4 | PORTD.1= 1 'Sender aus
|
5 | 'wenn jetzt der Anwender seine Taste drückt, wird der arme Atmega-Port kurzgeschlossen!!
|
Daher ist es in solchen Fällen notwendig, immer dir Richtung zu ändern,
um so den Input als "neutralen TriState" zu nutzen.
Beispiel:
1 | CONFIG PORTD.1=Input
|
2 | PORTD.1=1 'Pullup
|
3 | 'Beim Schalten, hier ist meines Erachtens die Reihenfolge wichtig,
|
4 | damit beim parallelen manuellen Schalten kein Kurzschluss entsteht.
|
5 | PORTD.1=0
|
6 | CONFIG PORTD=Output
|
7 | Waitms 500
|
8 | CONFIG PORTD=Input
|
9 | PORTD.1=1 'Pullup
|
Stimmen meine Überlegungen?