Geradores de pulsos com interrupçoes

Boa noite pessoal, gostaria muito da ajuda de vocês. Estou tentando desenvolver um codigo para gerar pulsos com duração de 10 ms, porém eles devem seguir uma sequencia conforme a figura abaixo.

pulsos

eu já utilizei algumas interrupçoes mas a sequencia tem que ser está pois depois vou utilizar um subtrator com AmpOp, para criar uma quadrada bifásica.
eu tentei o código abaixo:

#define F_CPU 16000000
#define set_bit(reg,bit) (reg |= (1<<bit))
#define reset_bit(reg,bit) (reg &= ~(1<<bit))

#include <avr/io.h>
#include <avr/interrupt.h>

int counter1;
int counter2;

ISR(TIMER0_OVF_vect)
{
counter1++; // counter é minha frequencia

if(counter1 == 49) // o que está em parenteses pode ser uma variavel para a Duração dos pulsos
{
    
	
	PORTB = 0x03;    //fase positiva canal 01 e 02
	PORTD = 0x00;     //fase negativa canal 01 e 02
	
	counter1 = 0x00;
}

}

ISR(TIMER1_OVF_vect)
{
counter2++;

if(counter2 ==60)
{
	PORTB = 0x00;    //fase positiva canal 01 e 02
	PORTD = 0x03;     //fase negativa canal 01 e 02
	
	counter2 = 0x00;
	
}

}

int main(void)
{
cli();

DDRB |= (1<<0);						//O PB0 será saída digital
DDRB |= (1<<1);						//O PB1 será saída digital

DDRD |= (1<<0);						//O PD0 será saída digital
DDRD |= (1<<1);						//O PD1 será saída digital



PORTB &= ~(1<<0);					//Inicia o PB0 em nível low
    PORTB &= ~(1<<1);			                //Inicia o PB1 em nível low

PORTD &= ~(1<<0);					//Inicia o PD0 em nível low
PORTD &= ~(1<<1);					//Inicia o PD1 em nível low



TCNT0 = 0X00;       
TCNT1 = 0X32;        


TCCR0B = 0X04;      
TCCR1B = 0X01;       

TIMSK0 =  0x01;    
TIMSK1 =  0X01;      

sei();								//Habilitar a interrupção global 


while (1) 
{
}

}

Outra dúvida, é possivel o timer 1 trabalhar com overflow e comparação ao mesmo tempo?