Problem mit timer 1 (16bit)

OP #1885385
Lesenswert?

Guten Tag,

Ich habe ein ATMEGA 644, wo ich den Timer 1 in CTC laufen lassen will 
mit einen vorteiler von 1. Den OCR1A habe ich testweise auf 30000 
gestellt. Laut der Formel im Datenblatt müsste ich am PIN OCR1A 
266,65... HZ messen können, jedoch mess ich nur eine Frequenz von 
16,59HZ, woran kann das liegen?

Mein C-Code:

#ifndef F_CPU
  #warning "F_CPU not defined for <uart-routines.h>"
  #define F_CPU 16000000UL
#endif
#include<inttypes.h>
#include <avr/io.h>
#include <math.h>
#include <stdlib.h>

int main(){
  DDRD = 0b11111111;
  TCCR1A |= (1<<COM1A0);
  TCCR1B |= (1<<WGM12) |  (1<<CS10);



  OCR1A = 30000;



  return(0);
}
Moderator Persönliche Seite #1885401
Lesenswert?

Tobias Wagner schrieb:
> Das Quarz ist richtig (16MHz)

Da du 1/16 der gewünschten Frequenz erreichst, liegt die Vermutung
nahe, dass du versehentlich die Fuses wieder auf den RC-Oszillator
(8 MHz) und CKDIV8 (1:8 prescaler) gesetzt hast.  Falls dein
Controller in einer Fassung sitzt, dann hast du mittlerweile
vielleicht ein neues Exemplar eingesetzt, dessen Fuses sich noch im
Auslieferungszustand befinden?

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