Forum: Mikrocontroller und Digitale Elektronik Fehler nach static declaration


von ArduStemmi (Gast)


Lesenswert?

Guten Abend! Ich habe folgenden herausforderndes Programm geschrieben, m 
meinen ATxmega32e5 zu testen:

#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL





int main(void)
{


  PORTD.DIR |= PIN5_bm | PIN6_bm | PIN7_bm;
        PORTD.OUT |= PIN5_bm | PIN6_bm | PIN7_bm;

  PORTD.PIN4CTRL |=  PORT_OPC_PULLUP_gc;
  TCC4.CTRLA |= TC45_CLKSEL_DIV1024_gc;
        TCC4.CTRLB |= TC45_WGMODE_NORMAL_gc;
        TCC4.INTCTRLA |= TC45_OVFINTLVL_HI_gc;
        TCC4.PER = 0x0D09;

  ISR( TCC4_OVF_vect ) //Zeile 31!!
  {
    PORTD.OUT ^= PIN6_bm;
  }



/* Replace with your application code */
    while (1)
    {
    }

}

Als Antwort bekomme ich zwei Fehler und eine Meldung:

1.  Info: previous declaration of 'vetor_12' was here , Zeile 31
2. Fehler: recipe for target 'mai.o' failed; im MakeFile
3. Fehler: static declaration of 'vector_12' follows non-static 
declaration, Zeile 31

Was ist denn falsch?

von Robert S. (robert_s68)


Lesenswert?

ArduStemmi schrieb:

>   ISR( TCC4_OVF_vect ) //Zeile 31!!
>   {
>     PORTD.OUT ^= PIN6_bm;
>   }

das sollte nicht innerhalb "int main(void) {...}" stehen...

von Helfer (Gast)


Lesenswert?

Das Problem liegt darin, dass du versucht die ISR innerhalb der 
Mainfunktion zu deklarieren. Du solltest die ISR ganz ans Ende der Datei 
packen, dann sollte dieser Fehler nicht mehr auftauchen.

von ArduStemm (Gast)


Lesenswert?

Danke!

von (prx) A. K. (prx)


Lesenswert?

NB: F_CPU wird in ein paar Includes verwendet, also besser vorher 
definieren.

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.