PWM ATmega128

Gast #486461
Lesenswert?

hallo,

ich möchte mit dem atmega128 ein pwm-signal erzeugen:
ich verwende den modus "phase and frequency correct" und habe folgendes 
problem:

der zähler zählt zuerst von 0 auf 5, dann wieder von 5 auf 0, usw.
wenn das register TCNT den wert von OCR1B während des hinaufzählens 
erreicht wird der ausgang gesetzt.

sowei stimmt noch alles, doch

beim hinunterzählen soll beim erreichen des wertes von OCR1B der ausgang 
wieder gelöscht werden, der ausgang bleibt aber auf high

weiß jemand wo das problem liegen könnte??

----------------------------------------
#include <AVR/io.h>
#include <AVR/interrupt.h>

int main(void)
{
  DDRB = 0xFF; // PortB als Ausgang

  TCCR1B |= (1<<WGM13);  // Phase and Frequency correct

  TCCR1A |= (1<<COM1B1) | (1<<COM1B0); // siehe Datenblatt S. 134

  ICR1 = 0x05; // Zähler zählt bis 5

  OCR1B = 0x03; // bei Zähler = 3 --> Ausgang setzen, bzw. rücksetzen

  TCCR1B |= (1<<CS11);  // Systemtakt/8

  sei();  // allgemeine Interruptfreigabe

  while(1){}

return 0;
}

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