Timer timed falsch

Gast #1153849
Lesenswert?

Hi,

ich will mit meinem ATmega8 ne Uhr baun. Hab jetzt aber ein Problem mit 
dem Programm dafür.
Folgender Code:
1
#include <avr/io.h>  
2
#include <avr/interrupt.h>
3
#include <stdint.h>
4

5
volatile uint8_t Sekunde;
6

7
void Start_Timer( void )
8
{
9
  TIMSK |= (1 << OCIE1A);      // CTC-Interrupt zulassen
10
  TCCR1B = (1 << WGM12) | (1 << CS12);  // CSC Modus; PSC = 256
11
  OCR1A = 62499;        // 16 MHz / 256 - 1
12
}
13

14
// Timer-Interrupt
15
ISR( TIMER1_COMPA_vect )
16
{
17
  ++Sekunde;
18
}
19

20
int main(void)
21
{
22
  DDRD = 0xFF;      // Port D als Ausgang
23
  
24
  Start_Timer();
25
  sei();
26
  
27
  for( ;; ){
28
    PORTD = Sekunde;
29
  }
30
}

Das ganze klappt auch ganz gut, nur leider um den Faktor ~10 zu langsam. 
Und ich find den Fehler nicht! Kann mir vielleicht jemand helfen?

Danke!
Gast #1153888
Lesenswert?

Ach ja... mit richtigen Fuses klappt's auf einmal... Sachen gibt's^^
Und dafür zerbricht man sich Stundenlang den Kopf -.-

Vielen Dank für die Hilfe!

Hätt mir ruhig eher jemand sagen können, dass ich gestern nen neune µC 
eingebaut hab ;-)

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