Guten Abend,
ich brauche euer geschultes Auge für einen Taster Interrupt. Ich glaube
ich seh den Wald vor lauter Bäumen nichtmehr.
Problem: Ich komme einfach nicht in die Routine rein.
Hardware: ATMega48; Taster an PD6 -> PCINT22
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | ISR(PCINT2_vect)
|
5 | {
|
6 | PORTB &= ~(1<<DDB1);
|
7 | //TCCR0A = (1<<CS01);
|
8 | }
|
9 |
|
10 | ISR(TIMER0_COMPA_vect)
|
11 | {
|
12 |
|
13 | }
|
14 |
|
15 | int main(void)
|
16 | {
|
17 | DDRB = (1 << DDB0) | (1 << DDB1) | (1 << DDB2);
|
18 | ///Clear all LEDS
|
19 | PORTB = 0x00;
|
20 |
|
21 | DDRD |= (1<<DDD6);
|
22 | PORTD = (1<<DDD6);
|
23 |
|
24 | PORTB = (1<<DDB1);
|
25 |
|
26 | PCICR = (1<<PCIE2);
|
27 | PCMSK2 = (1<<PCINT22);
|
28 | //Timer starten
|
29 | //TCCR0A = (1<<CS01);
|
30 | TIMSK0 |= (1<<TOIE0);
|
31 |
|
32 | sei();
|
33 |
|
34 | while(1)
|
35 | {
|
36 | PORTB |= (1<<DDB1);
|
37 | }
|
38 | }
|