mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik probleme mit AtMega16 timer0 ctc modus


Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin gerade neu in die avr programmierung eingestiegen und hätte da
mal ein problem:
Ich möchte mit einem Atmel AtMega16 mit dem Timer0 gerne ein PWM Signal
generieren, bei welchem ich die Frequenz selbst (über OCR0)bestimmen
kann. Getaktet wird das System über einen externen 16Mhz Quarz.
Soweit funktioniert das ja auch alles, jedoch bekomme ich am Ausgang
(OC0) immer die selbe Freuquenz von 125000 Khz.
Ich habe jetzt schon diverses ausprobiert, jedoch ohne erfolg....

/* includes */
#include <avr/interrupt.h>
#include <avr/io.h>

/* function declarations */
void InitPorts (void);
void InitTimer0 (void);

void main ()
{
  InitPorts();
  InitTimer0();
  /* Set Timer 0 to CTC Mode */
  TCCR0 |= (1<<WGM01);
  /* Set OC0 to toggle at compare matches */
  TCCR0 |= (1<<COM00);
  /* set the prescaler to 64 (results in max frequency 125000 hz) */
  TCCR0 |= (1<<CS01) | (1<<CS00);
  /* set top value for frequency (255 = 488 hz)*/
  OCR0=255;
  for(;;)
  {
  }
}

/* Init for PORTS */
void InitPorts (void)
{
  /* configure pin 4 at portb as output */
  DDRB |= (1<<PB3);

}
/* init for Timer0 */
void InitTimer0 (void)
{
  /* Set Timer 0 to CTC Mode */
  TCCR0 |= (1<<WGM01);
  /* Set OC0 to toggle at compare matches */
  TCCR0 |= (1<<COM00);
  /* set the prescaler to 64 (results in max frequency 125000 hz) */
  TCCR0 |= (1<<CS01) | (1<<CS00);
}

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>TCCR0 |= (1<<WGM01);
lass da mal den "|" weg - oder weisst du, was voher im Register
stand?
Im Allgemeinen initialisiert man den Timer auch in einer Zeile. Das ist
aber Geschmackssache.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.