и далее (в соответствии с даташитом стр. 331 таб. 27-1 режим RISING) я должен получать событие которое будет возникать только при положительном переходе сигнала через порог (т.е. фактически частота событий будет равна частоте синусоиды)
Вот код
Код
//Инициализация и включение аналогового компаратора 0 порта A для измерения частоты синусоидального сигнала с амплитудой от 50 мВ до 1В с смещением в положительную область на 1,25 В
void init_AC(void)
{
// Конфигурируем канал 0 на работу в несимметричном включении
ACA.AC0CTRL |= AC_ENABLE_bm; //Разрешаем компаратор А канал 0
ACA.AC0CTRL |= AC_INTMODE_RISING_gc; // Реагируем только по нарастающему фронту
ACA.AC0CTRL &= ~AC_HSMODE_bm; //Установка нормального режима (не быстрого).
ACA.AC0CTRL |= AC_HYSMODE_NO_gc; //Без гистерезиса
ACA.AC0MUXCTRL |= AC_MUXPOS_PIN0_gc; //На неинвертирующий с 0 входа
ACA.AC0MUXCTRL |= AC_MUXNEG_SCALER_gc; // На инвертирующий вход - от внутреннего делителя напряжения
//ACA.CTRLA |= AC_AC0OUT_bm; // Выход на 7 ножке;
ACA.CTRLB |= 0x16; // Коэффициент деления при напряжении питания 3,5 В при уровне среднего (смещение) 1,25 В, напряжение реагирования компаратора: b10110=0x16 - примерно 1,2578125В
EVSYS.CH0MUX = EVSYS_CHMUX_ACA_CH0_gc;// Событие возникает при срабатывание компаратора A канал 0
TCC1.CTRLA = TC_CLKSEL_EVCH0_gc; // перенаправляем событие на таймер/счетчик для дальнейшего подсчета
}
... и далее на таймере измеряю частоту сигнала
void init_AC(void)
{
// Конфигурируем канал 0 на работу в несимметричном включении
ACA.AC0CTRL |= AC_ENABLE_bm; //Разрешаем компаратор А канал 0
ACA.AC0CTRL |= AC_INTMODE_RISING_gc; // Реагируем только по нарастающему фронту
ACA.AC0CTRL &= ~AC_HSMODE_bm; //Установка нормального режима (не быстрого).
ACA.AC0CTRL |= AC_HYSMODE_NO_gc; //Без гистерезиса
ACA.AC0MUXCTRL |= AC_MUXPOS_PIN0_gc; //На неинвертирующий с 0 входа
ACA.AC0MUXCTRL |= AC_MUXNEG_SCALER_gc; // На инвертирующий вход - от внутреннего делителя напряжения
//ACA.CTRLA |= AC_AC0OUT_bm; // Выход на 7 ножке;
ACA.CTRLB |= 0x16; // Коэффициент деления при напряжении питания 3,5 В при уровне среднего (смещение) 1,25 В, напряжение реагирования компаратора: b10110=0x16 - примерно 1,2578125В
EVSYS.CH0MUX = EVSYS_CHMUX_ACA_CH0_gc;// Событие возникает при срабатывание компаратора A канал 0
TCC1.CTRLA = TC_CLKSEL_EVCH0_gc; // перенаправляем событие на таймер/счетчик для дальнейшего подсчета
}
... и далее на таймере измеряю частоту сигнала
кто нибудь пребывал такие режимы? (и правильно ли я его понимаю).