Ich werde gerade wahnsinnig, weil es mir beim AVR Butterfly einfach nicht gelingt, den Joystick korrekt zu verwenden. Hoch, Runter und Knöpfchen drücken funktioniert einwandfrei, aber die Bits für Rechts und Links werden immer als '0' gelesen, verhalten sich also so, als wären die entsprechenden Richtungen dauerhaft betätigt.
Hier ein simpler Programmcode:
int main(void) { DDRE = 0; PORTE = _BV(PE2)|_BV(PE3); DDRB = _BV(DDB5);
while(1) { if ( (PINE & _BV(PINE3)) == 0 ) { PORTB ^= _BV(PB5); _delay_ms(1); } } }
Nach der Logik müßte aus dem Piezo ein Ton erklingen, sobald der Joystick nach rechts bewegt wird. Wenn ich statt PIN3 und PINE3 z.B. PINB und PINB4 einsetze (Knopfdruck) funktioniert es auch entsprechend. Bei obiger Variante erklingt der Ton aber konstant.
Irgendne Idee? Ich verzweifele.