Hallo,

ich benutze an meinem ATmega169 alle 4 PWM Kanäle, daher
kann ich leider keinen weiteren timer nutzen. Ich möchte nun
aber zu einer festen Periode Aktionen durchführen, dazu wollte
ich die Periodendauer des PWM nutzen, die ja konstant sein sollte
und vom aktuellen Wert des PWM unabhängig ist. Leider ist es nun
so, dass meine dadurch gesteuerte LED immer in unterschiedlichen
Perioden blinkt, wenn ich den PWM-Wert verändere. Was mache ich
falsch???

Wie gesagt, ich möchte einen Interrupt zum Ende einer PWM Periode
und nicht dann, wenn die Flanke kommt.

Code:
SIGNAL (SIG_OUTPUT_COMPARE1A) {

	// count for 100ms routine
	ui_interruptCounter0++;
	if (ui_interruptCounter0 > TIME_100_MS) {
		timer100ms();
		ui_interruptCounter0 = 0;
	}
}

static void initPWM(void) {

	// init pwm timer
	
	// 8bit timer/counter 0 
	TCCR0A = (1<<WGM00)|(1<<COM0A1)|(1<<CS01);
	// set initial pwm
	OCR0A = 200;
	
	
	// 16bit timer/counter 1
 	TCCR1A = (1<<WGM10)|(1<<COM1A1)|(1<<COM1B1);
	TCCR1B = (1<<CS10);
	// set initial pwm
	OCR1A = 200;
	OCR1B = 200;
	
	
	// 8bit timer/counter 2
	TCCR2A = (1<<WGM20)|(1<<COM2A1)|(1<<CS21);
	// set initial pwm
	OCR2A = 200;
	
}

static void initInterrupt(void) {
	
	// switch interrupt on
	TIMSK1 |= (1<<OCIE1A);
	
	// enable interrupts
	sei();
}

timer100ms() {

        // control LED

}
Danke und Gruß
RICOLA