Forum: Compiler & IDEs Interrupt Compilerfehler


von Jens H. (Firma: FH-Köln) (holzi)


Lesenswert?

Bekomme diese Compilerfehler in Zeile vonISR(TIMER1_COMPA_vect)

und das gleiche für vector 7 in Zeile von ISR(TIMER1_COMPB_vect)



../Tic-Tac-Touch.c:384: error: static declaration of '__vector_6' 
follows non-static declaration

../Tic-Tac-Touch.c:384: error: previous declaration of '__vector_6' was 
here




1
ISR(TIMER1_COMPA_vect)
2
{
3
  pwm_cycle = 0;
4
5
  PORTB |= ptr_PORTB_isr[0];
6
 // PORTC |= ptr_PORTC_isr[0];
7
8
  OCR1B = ptr_timing_isr[0];
9
}
10
11
12
13
ISR(TIMER1_COMPB_vect)
14
{
15
  pwm_cycle++;
16
17
  PORTB &= ~ptr_PORTB_isr[pwm_cycle];
18
 // PORTC &= ~ptr_PORTC_isr[pwm_cycle];
19
20
  if(ptr_timing_isr[pwm_cycle] != 0)
21
  {
22
    OCR1B = ptr_timing_isr[pwm_cycle];
23
  }
24
  else if(pwm_change)
25
  {
26
    pwm_change = 0;
27
28
    uint8_t *temp_ptr;
29
30
    temp_ptr = ptr_PORTB_main;
31
    ptr_PORTB_main = ptr_PORTB_isr;
32
    ptr_PORTB_isr = temp_ptr;
33
34
   /* temp_ptr = ptr_PORTC_main;
35
    ptr_PORTC_main = ptr_PORTC_isr;
36
    ptr_PORTC_isr = temp_ptr;*/
37
38
    temp_ptr = ptr_timing_main;
39
    ptr_timing_main = ptr_timing_isr;
40
    ptr_timing_isr = temp_ptr;
41
  }
42
}

von holger (Gast)


Lesenswert?

>../Tic-Tac-Touch.c:384: error: previous declaration of '__vector_6' was
>here

Was steht hinter "here"?

von Jens H. (Firma: FH-Köln) (holzi)


Lesenswert?

nichts.. :-/ Insgesamt sind es 4 Fehler Code Zeilen!!

von holger (Gast)


Lesenswert?

>nichts.. :-/ Insgesamt sind es 4 Fehler Code Zeilen!!

Wie, nichts? Irgendwas sollte da schon stehen.

>../Tic-Tac-Touch.c:384: error: previous declaration of '__vector_6' was

Das sieht so aus als hättest du die ISRs zweimal im Code.

von Oliver (Gast)


Lesenswert?

Tja, der Fehler steckt wohl irgendwo in den vorherigen 384 Zeilen, die 
du uns leider vorenthältst.

#include <avr/interrupt.h> sollte eine davon sein.


Oliver

von Falk B. (falk)


Lesenswert?

Ich rate mal. Du hast die ISRs INNERHALB von main oder einer anderen 
Funktion platziert. Das ist falsch. Sie müssen ausserhalb von main 
stehen, wie normale Funktionen.

MFG
Falk

von Jens H. (Firma: FH-Köln) (holzi)


Lesenswert?

nein die ISRs stehen unterhalb der main!!

von Falk B. (falk)


Lesenswert?

Dann poste mal VOLLSTÄNDIGEN Quelltext als ANHANG.

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
Noch kein Account? Hier anmelden.