Я на таком варианте пробовал
PHP код:
#define D13_High PORTB |=B10000000
#define D13_LOW PORTB &= B01111111
volatile unsigned int tcnt2 251//32 такта делителя * (256-251)=160 тактов. То есть каждые 10 мкс.
volatile byte pwm_time;

void setup()  
pinMode(13OUTPUT);    
    
TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2  
    
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика 
    
TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика 
      
ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора 
    
TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2. 
    
TCCR2B &= ~(1<<CS22); // эта и  следующая строка задает таймер увеличение TCNT2 каждые 32 такта. 
    
TCCR2B |= ((1<<CS21) | (1<<CS20));
}
void loop()
{
}
ISR(TIMER2_OVF_vect)  

    
TCNT2 tcnt2;
    
pwm_time++;         
    if(
pwm_time 128D13_High; else D13_LOW

и получилась примерная частота при tcnt2
250 = 340 гц
251 = 390 гц
252 = 490 гц
253 = 660 гц
254 = 980 гц
и не понятно почему при 255 тоже 980 гц.