void setup() {
pinMode(9, OUTPUT); // выход генератора
TCCR1A = 0;
TCCR1B = 0;
static uint32_t reqfreq = 350; // Частота 350 Гц
uint32_t ocr = OCR1A;
uint16_t divider = 1;
if (reqfreq == 0 || reqfreq > F_CPU/2) return;
ocr = (F_CPU/reqfreq/2/divider);
byte shifts[] = {3, 3, 2, 2};
for(byte i = 0; i < 4; i++) {
if (ocr > 65536) {
divider <<= shifts[i];
ocr = F_CPU/reqfreq/2/divider;
}
else {
TCCR1B = (i + 1)|(1<<WGM12);
break;
}
} //Mode4 (CTC)
OCR1A = ocr - 1;
TCCR1A = 1<<COM1A0;
}
void loop() {
}