Kann man 2 ISR gleichzeitig laufen lassen? Macht das Sinn?

Ich verwende bereits einen Zeitgeber in meinem Programm der auf 10ms definiert ist, mit dem ich die Tasten abfrage (kurz oder lang gedrückt):

Code:
ISR(TIMER0_OVF_vect)
{
	static uint8_t ct0, ct1, rpt;
	uint8_t i;

	TCNT0 = (uint8_t)(int16_t)-(F_CPU / 1024 * 10e-3 + 0.5);

	i = key_state ^ ~KEY_PIN;								// Taste geändert?
	ct0 = ~(ct0 & i);										// resete oder zähle CT0
	ct1 = ct0 ^ (ct1 & i);									// resete oder zähle CT1
	i &= ct0 & ct1;											// Überlauf gezählt?
	key_state ^= i;											// dann Entprellstatus ändern
	key_press |= key_state & i;								// 0->1: Tastendruck erkannt

	if((key_state & REPEAT_MASK) == 0)						// Überprüfe Tastenwiederholfunktion
		rpt = REPEAT_START;									// Starte Verzögerung
	if(--rpt == 0)
	{
		rpt = REPEAT_NEXT;									// Wiederhole Verzögerung
		key_rpt |= key_state & REPEAT_MASK;
	}
}
Jetzt bräuchte ich jedoch noch einen der mir eine Variable in einer frei definierten Zeit (mittels Variable) zwischen HI/LOW toggelt.[/code]