ISR TIMER0_COMPA Interrupt Warning

Gast #5609704
Lesenswert?

Nabend,
ich habe neben meiner Datei main.c (wo sich meine main-Funktion 
befindet) eine Datei und Header für timer (also timer.h und timer.c)
In denen habe ich die Funktionenn für die Initialisierung der Timer 
gemacht.

Die Interrupt-Routine rufe ich dann mti
ISR(TIMER0_COMPA_vect) auf.

timer.c
1
void timer_init()
2
{
3
  TCCR0A |= (1 << WGM01); // CTC-Mode
4
  TCCR0B |= (1 << CS00) | (1 << CS01); // clkI/O/64
5
  OCR0A = (250 - 1);
6
  TIMSK0 |= (1 << OCIE0A);
7
  
8
  TCCR2A |= (1 << WGM01); // CTC-Mode
9
  TCCR2B |= (1 << CS00) | (1 << CS01); // clkI/O/64
10
  OCR2A = (250 - 1);
11
  TIMSK2 |= (1 << OCIE2A);
12
}
13

14
ISR (TIMER0_COMPA_vect)
15
{
16
  //static int32_t milliseconds = 0;
17
  //milliseconds++;
18
  //
19
  //if(milliseconds>=1000)
20
  //{
21
  //  milliseconds = 0;
22
  //}
23
}


ist diese Funktion (ISR (TIMER0_COMPA_vect)) in der Datei main.c, 
bekomme ich beim kompilieren keine Warnung. Ist diese Funktion 
allerdings in der timer.c bekomme ich die Warnungen

control reaches end of non-void function
return type defaults to 'int'
type of '__vector_14' defaults to 'int'

Was ist der Unterschied an den ISRs bezüglich der normalen funktionen? 
für die Funktion timer_init bekomme ich ja keine Fehlermeldung.
Oder sollten die ISRs in die main.c?

Mark

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren