ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1297030
vesago (01.04.2023 12:48, просмотров: 1970)
Друзья, подскажите по работе компаратора в atmega168? Я подаю некий сигнал на вход ADC6. Проинициализировал его как вход компаратора: 
  ADCSRA &= ~(1<<ADEN);
  ADMUX = 6;
  ADCSRB |= (1<<ACME);
  ACSR = (1<<ACD);
  ACSR = (1<<ACD) | (1<<ACBG) | (1<<ACI) | (1<<ACIE);
  ACSR &= ~(1<<ACD););>

Ну и в обработчике прерывания фиксирую изменения сигнала:

#pragma vector = ANA_COMP_vect

__interrupt void ANA_COMP_Isr(void)

{

ACSR |= (1<<ACI););
);


Напрягает, что часто прыгает в обработчик. Логическим анализатором смотрю - вроде висит, допустим высокий уровень. Нет изменений, а периодически прыгает. И в самом отработчике в такой момент смотрю - выход компаратора ACO как был так и остался. Может конечно какие иголки, которые анализатор на отображает и пока отладчик остановится, уже поменялся ACO. Или сможет есть какие тонкости работы? Что-то заставляет взводиться ACI.