Страница 1 из 1

генератор на 1мгц (помогите упаковать в блок)

Добавлено: 16 мар 2025, 15:11
fefar51702

Код: Выделить всё

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() {
  // Основной цикл пустой, так как таймер работает в фоновом режиме
}
код рабочий проверил немного врёт на 2-4 нс но пойдёт

Re: генератор на 1мгц (помогите упаковать в блок)

Добавлено: 16 мар 2025, 15:39
dstrufanov
Сообщение удалено

Re: генератор на 1мгц (помогите упаковать в блок)

Добавлено: 16 мар 2025, 16:56
Aleks21
fefar51702 писал(а): 16 мар 2025, 15:11 код рабочий проверил немного врёт на 2-4 нс но пойдёт

Re: генератор на 1мгц (помогите упаковать в блок)

Добавлено: 16 мар 2025, 17:27
ecoins
Aleks21 писал(а): 16 мар 2025, 16:56
fefar51702 писал(а): 16 мар 2025, 15:11 код рабочий проверил немного врёт на 2-4 нс но пойдёт
Проверил на Nano - удивился, все работает как Вы написали. На 16мГц.
Неожиданный подход к реализации автономного генератора.
Вы просто молодец.
Успехов.
С уважением, ecoins.

Re: генератор на 1мгц (помогите упаковать в блок)

Добавлено: 17 мар 2025, 08:47
dstrufanov
Сообщение удалено

Re: генератор на 1мгц (помогите упаковать в блок)

Добавлено: 17 мар 2025, 09:09
fefar51702
ecoins нет это ии молодец я мало что понял из его обьяснения кода даже

Aleks21 вон значит как а я всё пытался приделать ему пин на выход

Re: генератор на 1мгц (помогите упаковать в блок)

Добавлено: 17 мар 2025, 09:16
dstrufanov
Сообщение удалено