Не сильно вникая... Думаю так будет получше
void main(void)
{
init_devices();
//insert your functional code here...
// if (PORTD & PD0) // bit -
while(1)
{
if (PIND & (1 << MY_INPUT))
{
TCCR2 = 0x00; //start
}
else
{
TCCR2 = 0x7E; //stop //1
}
}
}
но работать всё равно будет плохо, т.к. нужно добавить антидребезг.
(с настройками периферии я не разбирался)