Hallo,
nutze einen Atmega32M1 (Achtung, M1)
Versuche einen Externen Interrupt zu nutzen, klappt aber nicht.
Nutze den PIN PC0 (INT3) (Pin 30)
Folgende Funktion rufe ich in der main(..) auf:
1 | void Init_ExternerInterrupt(void) {
|
2 | EICRA = (1 << ISC30);
|
3 | EIMSK = (1 << INT3);
|
4 | EIFR = (1 << INTF3);
|
5 |
|
6 | DDRC &= ~(1 << PC0);
|
7 | PORTC |= (1 << PC0);
|
8 | }
|
Hier die ISR:
1 | volatile unsigned int test = 0;
|
2 |
|
3 | ISR (EXT_INT3_vect) {
|
4 | test++;
|
5 | }
|
Und in der main innerhalb der while(..) frage ich die Variable test ab:
1 | sei();
|
2 | while(..){
|
3 |
|
4 | if(test > 0) {
|
5 | PORTD ^= 1 << PORTD7;
|
6 |
|
7 | if(test > 200)
|
8 | test = 0;
|
9 | }
|
10 | }
|
Wo mach eich einen Fehler?