Hallo,
ich habe folgendes Problem mit meinem Programm (für ATtiny26)
1 | int main()
|
2 | {
|
3 | uint8_t Drehzahl,Taster;
|
4 |
|
5 | DDRB = (1<<DDB0)|(1<<DDB1); // LEDs
|
6 |
|
7 | DDRA &= ~((1<<DDA0)|(1<<DDA1)|(1<<DDA2)); //Taster UP,DOWN,SET
|
8 | PORTA = (1<<PA0)|(1<<PA1)|(1<<PA2); //Pullups aktivieren
|
9 |
|
10 | TIMSK |= (1<<TOIE0); //Timer0 Overflow Interrupt enable
|
11 | TCCR0 |= (1<<CS02); //Prescaler = 256 & Timer sarten
|
12 | GIMSK |= (1<<INT0); //INT0 enable
|
13 | MCUCR |= (1<<ISC01); //INT0 auf fallende Flanke
|
14 | Drehzahl = eeprom_read_byte(&SpeicherDrehzahl);
|
15 | sei();
|
16 |
|
17 | while(1)
|
18 | {
|
19 | Taster=PINA;
|
20 | if( Taster <7)
|
21 | {
|
22 | PORTB|=(1<<PB1); //LED an
|
23 | ...
|
Ich habe wie im Programm zu erkennen an PA0, PA1 und PA2 Taster
angehängt und die internen Pullups aktiviert.
Mein Problem ist jetzt, dass wenn ich die Taster betätige (Taster ziehen
den entsprechenden Pin auf Masse) die If-Anweisung nie durchlaufen wird.
Egal welchen Taster ich drücke.
Ich hänge vor diesem blöden Fehler schon ein paar Stunden. Im Simulator
funktioniert es aber auf dem µC nicht.
Die LED ist auch richtig angeschlossen, von Pin über Widerstand nach
Masse.
Vielleicht sieht jemand von euch den Fehler, ich sehe den Wald vor
lauter Bäumen nicht mehr.