ich benutze einen attiny13A und möchte damit per taster einen Interrupt auslösen. Taster hängt an Pin4 aktiv low mit pullup. Die Register sind so initialisiert GIMSK |= (1<<PCIE); // Pin Change Interrupt Enable PCMSK |= (1<<PCINT4); // PCINT4 Interrupt Enable MCUCR |= (1<<ISC00); // Any logical change on INT0 generates an interrupt Und das ist die ISR: ISR (INT0_vect) { Taster_state ^= (1<<0); // toggle Taster_state if(Taster_state==0) // Taster losgelassen { TCCR0B &= ~((1<<CS00)|(1<<CS01)|(1<<CS02)); // Stop Timer } _delay_ms(50); // 50ms warten if(Taster_state==1) // Taster gedrückt { TCCR0B |= ((1<<CS00)|(1<<CS01)|(1<<CS02));// Start Timer } } Das zeigt AVR Studio immer an: ../main.c:75: error: static declaration of '__vector_1' follows non-static declaration Kann mir bitte jemand helfen ich weiß echt nicht mehr weiter
Hat jemand eine Idee warum er nicht in die ISR springt? Ist das mit ISR (INT0_vect) schon richtig so
So habe ich keine Störmeldungen bekommen.
1 | #include <avr/interrupt.h> |
2 | #define F_CPU 600000UL
|
3 | #include <util/delay.h> |
4 | |
5 | char Taster_state = 0; |
6 | int main(void) |
7 | {
|
8 | |
9 | GIMSK |= (1<<PCIE); // Pin Change Interrupt Enable |
10 | PCMSK |= (1<<PCINT4); // PCINT4 Interrupt Enable |
11 | MCUCR |= (1<<ISC00); // Any logical change on INT0 generates an interrupt |
12 | |
13 | for(;;); |
14 | |
15 | return(0); |
16 | }
|
17 | |
18 | //Und das ist die ISR:
|
19 | |
20 | ISR (INT0_vect) |
21 | {
|
22 | Taster_state ^= (1<<0); // toggle Taster_state |
23 | if(Taster_state==0) // Taster losgelassen |
24 | {
|
25 | TCCR0B &= ~((1<<CS00)|(1<<CS01)|(1<<CS02)); // Stop Timer |
26 | }
|
27 | _delay_ms(50); // 50ms warten |
28 | |
29 | if(Taster_state==1) // Taster gedrückt |
30 | {
|
31 | TCCR0B |= ((1<<CS00)|(1<<CS01)|(1<<CS02));// Start Timer |
32 | }
|
33 | }
|
Die IST ist außerhalb von main und der endlosschleife ich werd noch verrückt hier
martin schrieb: > Die IST ist außerhalb von main und der endlosschleife Die main.c sagt da was anderes
1 | int main (void) |
2 | { |
3 | [..] |
4 | ISR (INT0_vect) |
5 | [..] |
6 | } |
Klammer vorrücken und gut iss.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.