Код: Выделить всё
void setup() {
// Настройка таймера 1 для генерации сигнала 1 МГц
pinMode(9, OUTPUT); // Устанавливаем вывод 9 как выход
// Сбрасываем настройки таймера 1
TCCR1A = 0;
TCCR1B = 0;
// Устанавливаем режим CTC (Clear Timer on Compare Match)
TCCR1B |= (1 << WGM12);
// Устанавливаем предделитель на 1 (без деления частоты)
TCCR1B |= (1 << CS10);
// Устанавливаем значение для сравнения (OCR1A)
// Частота тактирования Arduino Uno 16 МГц
// Для генерации 1 МГц: OCR1A = (16,000,000 / (2 * 1,000,000)) - 1 = 7
OCR1A = 7;
// Включаем режим сравнения для вывода OC1A (вывод 9)
TCCR1A |= (1 << COM1A0);
}
void loop() {
// Основной цикл пустой, так как таймер работает в фоновом режиме
}