16 bit Timer rasst davon..

Gast #3449672
Lesenswert?

Hallo Zusammen

Ich bin gerade dabei bei einem Atmega2560 mit den Timern etwas 
herumzuspielen. Ich habe nun verucht mit timer 3 im CTC modus eine ISR 
im 1 Sekunden Takt auszulösen. Nun ist es aber so dass dauer zwischen 
den Interrupts bei etwa 200mS liegen, also viel zu schnell...
Ich habe nun etwa 10 mal das entsprechende Kapitel im datenblatt gelesen 
und komme einfach nicht weiter. Was mache ich falsch?
1
#define F_CPU  16000000UL
2

3
#include <avr/io.h>
4
#include <avr/interrupt.h>
5

6

7
int main(void)
8
{
9
  uint16_t Timer = (F_CPU/1024) -1;
10
  TCCR3A = (1<<WGM31);      //CTC Mode
11
  TCCR3B = (1<<CS32) | (1<<CS30);    //prescaler 1024
12
  
13
  OCR3AH = (Timer>>8);      //t = 1s
14
  OCR3AL = Timer;
15
  
16
  TIMSK3 |= (1<<OCIE3A);    
17
  sei();
18
  DDRL = 0xFF;
19
    while(1)
20
    {
21
        //Blablabla
22
    }    
23
}
24

25
  ISR(TIMER3_COMPA_vect)
26
  {
27
    PORTL ^= (1<<PL0);
28
  }

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