Компаратор не пускается после отключения ATmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Сообщение Victor_P. »

Исходные данные:
Компаратор: AIN0 на земле, AIN1 через мультиплексор на вход АЦП0:
ADMUX |= (1<<REFS1|1<<REFS0|0<<ADLAR|0<<MUX3|0<<MUX2|0<<MUX1|0<<MUX0);
ACSR |= (0<<ACD|0<<ACBG|1<<ACIE|0<<ACIC|1<<ACIS1|1<<ACIS0);
SFIOR |= (1<<ACME);
На АЦП0 идет синусоида.
По прерыванию компаратора (синусоида пошла в минус) запускается таймер-счетчик 1,
по прерыванию по совпадению А таймера-счетчика 1:
-запускается таймер-счетчик 0
-выключается компаратор, отключается от АЦП входа (ACSR |= (1<<ACD), SFIOR |= (0<<ACME))
-включается АЦП
по прерыванию таймера-счетчика 0 запускается преобразование АЦП (несколько раз, потом таймер-счетчик 0 отключется),
при последнем в серии прерывании таймера-счетчика 0:
-выключается АЦП
-компаратор цепляется к входу АЦП и включается (ACSR |= (0<<ACD), SFIOR |= (1<<ACME))
И дальше по идее должно все повториться по прерыванию компаратора, но не повторяется.

Компаратор после отключения не хочет включаться.
Пробовал не переключать на АЦП, оставлять только ACSR |= (1<<ACD) и после задержки ACSR |= (0<<ACD) - все равно не включается.
Такое ощущение, что компаратор можно включить только сбросом микроконтроллера.
Так вот вопрос, это я где-то туплю, или так оно и есть и "на ходу" компаратор никак не включить? Или может протеус глючит (я на нем тестировал, не в железе)?

Вот картинка с протеуса, тут вместо АЦП просто дергаю портом, ну и соответственно компаратор не выключаю и так все работает.
Изображение
Если не отключать компаратор и не мультиплексировать AIN1 на вход АЦП0, а использовать его родную ногу, то все работает отлично, но мне так не надо.
Мои паяльные станции: первая, вторая, фен.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2168
Зарегистрирован: Сб окт 10, 2009 10:34:07
Откуда: Україна, Хорол

Сообщение Victor_P. »

Вопрос снят, разобрался. Большое спасибо Леониду Ивановичу за помощь.
Мои паяльные станции: первая, вторая, фен.
Реклама
Ответить

Вернуться в «AVR»