------------------------------------------------------------------------------------ ----------------Скрипт кнопки копировать---------------------

Генератор синуса 50 герц на esp32

Генератор синуса 50 герц на esp32


Генератор синуса 50 герц на esp32

Генератор синуса 50 герц на esp32,

#include <Ticker.h>

 

#define DAC_PIN 25       // GPIO25 - пин ЦАП

#define TABLE_SIZE 400 // Количество точек в таблице синуса - увеличено!

#define FREQ 50          // Желаемая частота сигнала (Гц)

 

// Таблица значений синуса (0-255)

uint8_t sineTable[TABLE_SIZE];

 

// Индекс текущего значения в таблице

volatile uint16_t tableIndex = 0; // Используем uint16_t для большего диапазона

 

// Объект Ticker

Ticker timer;

 

// Обработчик прерывания таймера

void timerISR() {

  // Устанавливаем значение на ЦАП

  dacWrite(DAC_PIN, sineTable[tableIndex]);

 

  // Увеличиваем индекс, сбрасываем в конце таблицы

  tableIndex = (tableIndex + 1) % TABLE_SIZE;

}

 

void setup() {

  // Заполняем таблицу значений синуса

  for (int i = 0; i < TABLE_SIZE; i++) {

    // Формула для значений синуса (0-255) с учетом сдвига на 127.5

    sineTable[i] = 127.5 + 127.5 * sin(2 * PI * i / TABLE_SIZE);

  }

 

  // Настройка таймера с помощью Ticker (период 0.2 мс)

  timer.attach_ms(0.02, timerISR);

}

 

void loop() {

  // Основной цикл не используется

}

 


Категория: Разное | Просмотров: 54 | Добавил: Админ | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Понедельник, 07.07.2025, 16:43
Партнёры
Здесь
Форма входа
Календарь
«  Сентябрь 2024  »
Пн Вт Ср Чт Пт Сб Вс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0