Warum man die Werte sortieren muss, ist mir auch nicht klar. In C sieht meine ISR jetzt so aus:

Code:
ISR(TIMER0_COMP_vect)
{
	static int count;
	if(count>x) PORTA &= ~16; // E_INT1 (Pin8)
		else PORTA |= 16;
	if(count>y) PORTC &= ~1; // SCL (Pin10)
		else PORTC |= 1;
	if(count>z) PORTC &= ~2; // SDA (Pin12)
		else PORTC |= 2;
	if(count<2000)count++;
		else count=0;
};
Und die Timer-Initialisierung sieht so aus:

Code:
	DDRA |= 16;				// E_INT1 als Ausgang
	DDRC |= 3;				// SCL und SDA als Ausgang

	TCCR0 = (0 << WGM00) | (1 << WGM01)
			| (0 << COM00) | (0 << COM01)
			| (0 << CS02)  | (1 << CS01) | (0 << CS00);
	OCR0  = 9;
	TIMSK =  (1 << OCIE0);
	sei();
Weil ich zu faul war um im Datenblatt nachzuschauen (bin Timer-Anfänger) verwende ich als Basis das Beispiel aus dem RN-Wissen und den auf 100kHz "aufgebohrten" Timercode aus der RP6-Library. Das ist aber nur mein aktueller Zwischenstand, ich bin da noch am testen. Soweit ich das Datenblatt durchschaue ist der Timer0 beim ATMega32 einer der 8bitigen Sorte: "8-bit Timer/Counter0 with PWM"

@oberallgeier:
Mein ISP-Problem mit dem tiny13:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=34808

Gruß

mic