Изменяя в обработчике прерывания значение TCNT1 можно получить частоту от 15Гц до 146кГц.
PHP код:
#define D4_High PORTD |=B00010000
#define D4_LOW PORTD &= B11101111
volatile boolean Counter;
//*************************************************************************
ISR(TIMER1_OVF_vect)
{
TCNT1=50000; //от 15Гц(0) до 145600Гц(65534)
Counter=~Counter;
if(Counter) D4_LOW; else D4_High;
}
////*************************************************************************
void setup()
{
pinMode(4, OUTPUT); //выход спидометра
Init_Timer1();
}
//*************************************************************************
void loop()
{
}
//*************************************************************************
void Init_Timer1()
{
TCCR1A = 0;
TCCR1B = (1<<CS11);
TCNT1 = 0;
TIMSK1 = _BV(TOIE1);
sei();
}