Forum: Mikrocontroller und Digitale Elektronik probleme mit mega16 timer1 ctc modus


von markus (Gast)


Lesenswert?

Hallo,

ich habe ein problem mit dem Timer 1 des Mega 16.
Ich möchte diesen im CTC Modus betreiben, und das Asuagngssignal am
OC1A pin bei jedem Compare Match toggeln. Getaktet wird über einen
16Mhz Quarz.
Ich hätte eine Frequenz von 1 Mhz an OC1A erwartet, jedoch bekomme ich
ca. 15 hz.
Wenn ich das OCR1A verändere und ein anderen TOP value hineinschreibe,
ändert sich die Ausgangsfrequenz auch nicht.
Weiss jemand woran das liegen kann?


#include <avr/io.h>

void main ()
{

  /* setze pin 1 und 6 als output */
  DDRD |=(1<<PD5);
  DDRD |=(1<<PD0);
  /* setze Toggeln a OC1A bei compare match */
  TCCR1A |=(1<<COM1A0);
  /* CTC mode setzen */
  TCCR1A |=(1<<WGM12);
  /* presaclaer auf 8 */
  TCCR1B |=(1<<CS11);
  /* 1 mhz */
  OCR1A=0;

  for(;;)
  {
  }
}

von Magnus Müller (Gast)


Lesenswert?

>> /* CTC mode setzen */
>> TCCR1A |=(1<<WGM12);

Hier steckt der Fehler... das WGM12-Bit ist nicht im TCCR1A, sondern im
TCCR1B!

Gruß,
Magnetus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.