El temporizador tiene CTC y PWN para generar pulso. Sin embargo, si quiero generar un pulso cuando el temporizador alcanza su nivel máximo, el uso de CTC o PWN no es necesario cuando se establece el TOV cuando el temporizador se desborda. Mi idea es que el pin de salida cambiará cada vez que se establezca el indicador TOV, luego se borra el indicador TOV y se espera otro desbordamiento del temporizador. Aquí está mi código en C, aunque no estoy seguro porque aún no entiendo cómo manejar cada bit en el registro y no sé cómo lo simulo en proteus.
#include <avr/io.h>
int main(void)
{
TOV1 = 0; // clear timer 1 overflown flag
DDRD = 0xFF; // set port D as output
TCCR1B = 0b00000001; // using internal I/O clock with prescaler 1
while(1){
if (TOV1 = 1){
PORTD ^= (1<<PORTD0); // toggle bit 0 on port D
TOV1++; // clear TOV by adding 1 to TOV
}
}
}