Gast
#486461
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;
}