Timer, Interrupt, 1000ms

OP #2618976
Lesenswert?

Hi zusammen.

Bin gerade beim Bau einer Uhr, folgende Rahmendaten:


Quarz: 4.194304MhZ
Timer: 16Bit
Prescaler: 64

Sollte meinen Berechnungen nach alle 1000ms einen Timer Overflow geben.
Ich will alle 1000ms einen Interrupt, indem die einzelnen Werte 
(stunden, minuten sekunden) raufgezählt werden. Eine Uhr halt :)

µC ist ein ATMEGA 16.

Allerdings entsteht mir ständig eine Fehlermeldung, was mich ein wenig 
irritiert, vielleicht kann mir da ja jemand helfen. Meine Programm 
(auf's wichtigste gekürzt) sieht wie folgt aus:
1
#include <avr/io.h>  //IO Ports/Pins
2
#include <avr/interrupt.h> //Interrupt Lib
3
#include <stdint.h>  //Datentypen
4
#include <util/delay.h> //Delay Lib
5

6
int main(void)
7
{
8

9
  TCCR1B = 0x03; //Timer System Frequency Prescaler 64
10
  TIMSK |= (1<<TOIE1); //Interrupt alle 1000ms (Timer 1)
11
  sei(); //Globale Interrupts erlauben
12

13
  while (1){
14

15
  /* Anzeige, diverses, unwichtig für Timer */
16

17
           }
18

19
  #ifndef TIMER1_OVF_vect  
20
  #endif
21
  
22
  ISR (TIMER1_OVF_vect)
23
  
24
  {
25
    
26
  /*Rauf, runterzählen */    
27

28
  }
29

30
}

So, ich habe mich an dieses Beispiel hier gehalten

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR

Und hab das Register TCCR1B respektive TIMSK gemäss Datenblatt geändert.
Leider funktioniert das ganze nicht so wie ich will, ich erhalte immer 
folgende Fehlermeldung:

static declaration of '__vector_8' follows non-static declaration

und als Warnung

previous declaration of '__vector_8' was here

Kann mir da vielleicht jemand weiterhelfen?

Freue mich auch eure Beiträge

MFG
Dave

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