Kesandal
28.04.2011, 21:11
Hallo,
der Thread-Titel sagt schon mein Anliegen :)
Mein Code sieht derzeit so aus:
#include <avr/io.h>
int main (void) {
DDRB = 0xFF; // Port B alles Output
DDRA = 0x00; // Port A alles Input
//PORTB = 0x00; // Alle LED an
PORTB = 0xFF; // Alle LED aus
while(1) {
// Knopf nicht gedrückt
if(PINA & 0b00000001){
PORTB = 0xFF; // Alle LED aus
}
else{
// Knopf gedrückt
PORTB = 0xFE; // Letzte LED einschalten
}
// Knopf nicht gedrückt
if(PINA & 0b00000010){
PORTB = 0xFF; // Alle LED aus
}
else{
// Knopf gedrückt
PORTB = 0xFD; // Letzte LED einschalten
}
}
return 0;
}
Das hier funktioniert für switch0/1 und led0/1.
Doch wie kann ich es eleganter lösen, wenn ich auf jeden Taster reagieren möchte?
Eine möglichkeit wäre es natürlich ein Switch-Case-Konstrukt für jedes einzelne Bit zu machen. Denke es geht aber auch eleganter oder?
Danke
Kesandal
der Thread-Titel sagt schon mein Anliegen :)
Mein Code sieht derzeit so aus:
#include <avr/io.h>
int main (void) {
DDRB = 0xFF; // Port B alles Output
DDRA = 0x00; // Port A alles Input
//PORTB = 0x00; // Alle LED an
PORTB = 0xFF; // Alle LED aus
while(1) {
// Knopf nicht gedrückt
if(PINA & 0b00000001){
PORTB = 0xFF; // Alle LED aus
}
else{
// Knopf gedrückt
PORTB = 0xFE; // Letzte LED einschalten
}
// Knopf nicht gedrückt
if(PINA & 0b00000010){
PORTB = 0xFF; // Alle LED aus
}
else{
// Knopf gedrückt
PORTB = 0xFD; // Letzte LED einschalten
}
}
return 0;
}
Das hier funktioniert für switch0/1 und led0/1.
Doch wie kann ich es eleganter lösen, wenn ich auf jeden Taster reagieren möchte?
Eine möglichkeit wäre es natürlich ein Switch-Case-Konstrukt für jedes einzelne Bit zu machen. Denke es geht aber auch eleganter oder?
Danke
Kesandal