#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() {
// Заполняем таблиц
...
Читать дальше »