#define BTN_OnOff 13 // пин кнопка On/Off (PIN --- КНОПКА --- GND)
#define IR_PIN 2 // пин ИК приёмника
#define LED_PIN 3 // пин DI светодиодной ленты
#define CHPORT PORTD // порт пинов (4-6)
#define CHSETUP DDRD // регистр управления пинов (4-6)
#define MIC PD4 // ключ подключения микрофона (4)
#define KEY_R PD5 // ключ подключения правого канала (5)
#define KEY_L PD6 // ключ подключения левого канала (6)
#define LEDPORT PORTB // порт пинов (9-12)
#define LEDSETUP DDRB // регистр управления пинов (9-12)
#define LED_line_O PB1 // пин светодиода "ЛИНЕНЫЙ ВХОД" (оранжевый) (9)
#define LED_IR_B PB2 // пин светодиода IR (синий) (10)
#define LED_ON_G PB3 // пин светодиода ON (зеленый) (11)
#define LED_OK_W PB4 // пин светодиода OK (белый) (12)
#define REF_FORCE_LOW PD7 // пин ручной корректировки уровня AREF (7)
// норма = HIGH, подача импульса уменьшает референсное напряжение
// (не действует, если референсное напряжение = 1В)
#define FORCE_LOW_PORT PORTD // порт пина (7)
#define FORCE_LOW_SETUP DDRD // регистр управления пина (7)
#define REF_FORCE_HIGH PB0 // PB0 норма = LOW, подача импульса увеличивает референсное напряжение
// (не действует, если референсное напряжение выше 4,5В) (8)
#define FORCE_HIGH_PORT PORTB // порт пина (8)
#define FORCE_HIGH_SETUP DDRB // регистр управления пина (8)
uint16_t vuMeterBands_R[7]; // массив значений по каждой частоте правого канала
uint16_t vuMeterBands_L[7]; // массив значений по каждой частоте левого канала
volatile uint16_t vuTemp[8];
volatile bool v_ready = false;
#include "classes.h"
inds indicators; // инициализируем светодиоды
#define N_CHANNELS 2 // количество каналов (для теста)
#define START_CH 0 // начинаем с канала 0
#define N_BANDS 8 // количество полос декодирования
#define START_BND 0 // начинаем с полосы 0
// формируем информацию о каналах (вводим три канала, чтобы выключить MIC)
result *channels[] = { new result(KEY_L), new result(KEY_R), new result(MIC) };
/* переменные, используемые в прерывании */
volatile byte a_channel = START_CH;// начинаем измерять с этого канала в массиве channels
volatile byte a_band = START_BND; // начинаем измерять с этой полосы
// буфер активного канала
volatile uint16_t *buffer = channels[START_CH]->getBands();
volatile uint32_t tempcounter = 0;
volatile uint16_t temp2counter = 0;
#include "interrupts.h"
#include "filters.h"