Code:
/****************************************************************************
by Thomas Grübler
je nach taster wird eine Led geschalten
****************************************************************************/
#include <io.h> // Wir brauchen Zugriff auf die I/O's des Controllers
// Typendefinition für ein BYTE
typedef unsigned char BYTE;
typedef unsigned int WORD;
int main (void)
/****************************************************************************
Programmbeginn
*/
{
/* PortB5-7 als outp configurieren
PortB2-4 als input confifurieren
outp (<bits>, <port>);
inp (<port>);
*/
outp (0x1F, DDRB); // Port B5-7 als Ausgang
//outp (PORTB6, DDRB); // Port B5-7 als Ausgang
//outp (PORTB7, DDRB); // Port B5-7 als Ausgang
//inp (PINB2); // Port B2-4 als Eingang
//inp (PINB3); // Port B2-4 als Eingang
//inp (PINB4); // Port B2-4 als Eingang
/* Hier beginnt die Endlosschleife. Dies könnte auch als
while (1)
definiert werden. Der Ausdruck for (;;) ist jedoch in C
eine übliche Schreibweise für sowas.
*/
for (;;) {
/* Pin 2 von Port B abfragen, eine logische 0 heisst 'Taster gedrückt'.
ACHTUNG: Es muss Register PIND abgefragt werden, nicht PORTD */
if (bit_is_clear (PINB, PINB2)) {
/* Wenn der Taster Gedrückt ist dann led einschalten */
sbi (PORTB, 5); //PortB2 einschalten
sbi (PORTB, 6);
sbi (PORTB, 7);
}
}
else {
/* Taster ist nicht gedrückt */
cbi (PORTB, 5); // Leds ausschalten
cbi (PORTB, 6);
cbi (PORTB, 7);
}
}
}
Lesezeichen