-
-
Erfahrener Benutzer
Roboter Experte
Hallo Decca,
int main(void) {
int i;
unsigned int keys;
'keys' braucht nur unsigned char=8bit, unsigned int (16bit) ist aber nicht falsch, mann sollte dennoch acht geben wenn '|' '~' oder '&' benutzt wird
mit Ports den wass geschied mit bits 8-15?
DDRB = 0xff; // PORTB als Ausgang
DDRD = 0x00; // PORTD als Eingang
PORTB = 0xff; // setzt alle Ausgangsport auf H-Pegel --> leds aus
for (i=0;i<10;i++) {
keys = ~PIND;
Ich nehme an, ein Tastendruck macht eingang PIND niedrich...
Hier wird 'keys' z.B hex 0xFB wenn Taste 3 von 8 gedruckt wird
(bit2 is '0')
if ( keys & 1 )
Ich nehme an dass hinten '& 1 )' ein '{' stehen sollte
Die 'if' wird immer ausgefuhrt wenn Taste 1 NICHT gedruckt ist. Denn
wenn Taste 1 nicht gedruckt ist wird bit0 in 'keys' '1'
PORTB &= ~(1<<PB0+i);
Mein compiler gibt hier eine Warnung. Besser wahre extra Haken.
PORTB &= ~(1<<(PB0+i));
}
}
Nirgendwo wird hier vom Program auf eine Tasendruck gewartet. Dass ganze Program sollte innerhalb (beim 8MHz oscillator) ungefahr 10 * 5 ist ungefahr 50 microseconden abgelaufen sein! Da muss man ja ganz schnell drucken!
Gruss,
Henk
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen