|
Wie man Tasten am AtTiny2313 benutzen kann
Unser kleines Experimentierboard
hat drei Tasten. Siehe unten rechts im Schaltplan.
Wie kann man die Tasten benutzen?
Vorgehensweise am Beispiel der Taste S3:
1. PD0 soll Eingang sein:
DDRD &= ~_BV(PD0);
// PD0 ist Eingang (Taste S3)
PORTD |=
_BV(PD0); // internen Pull Up Widerstand
an PD0 aktivieren
2. Eingang abfragen
if (bit_is_clear(PIND,0))
{machwas} // Taste gedrückt
if (bit_is_set(PIND,0))
{machwas} // Taste nicht gedrückt
Beispiel für ein Programm, bei dem
eine LED solange leuchtet, wie die Taste S3 gedrückt ist:
#include <avr/io.h>
int main(void){
DDRB |= _BV(PB0);
//Ausgang definieren (LED)
DDRD &= ~_BV(PD0);
//Eingang definieren (Taster)
PORTD |= _BV(PD0);
//internen Pull-Up-Widerstand einschalten
while(1){
if (bit_is_clear(PIND,0))
{PORTB |=_BV(PB0); }
if
(bit_is_set(PIND,0)) {PORTB &=~_BV(PB0);}
}
return(0);
}
Im C-Kurs der Mikrocontrollerspielwiese steht's hier noch etwas
ausführlicher
|