Не работает компаратор ATMega 88

Обсуждаем контроллеры компании Atmel.
Ответить
AudioKiller
Открыл глаза
Сообщения: 58
Зарегистрирован: Пн окт 04, 2010 22:54:15
Откуда: Ростов-на-Дону
Контактная информация:

Не работает компаратор ATMega 88

Сообщение AudioKiller »

Происходит какая-то фигня, не пойму в чём глобальная проблема.
Хочу использовать компаратор. В микроконтроллере ATMega 88. Включаю его програмно (код настроек генерится мастером среды разработки CodeVision AVR V3.40) на сравнение внешних напряжений. У него как и положено два входа, подключенных к ножкам контроллера AIN0, AIN1. И выход, который можно опрашивать програмно - системная 1 битная ACO. И вот всех книгах, интернетах и даташитах пишут, что АСО выставляется в ноль или единицу по результатам сравнения напряжений на входах (через пару тактов). Так и делаю - электрически подаю разные напряжения на входы. Контролирую входы осциллографом на всякий пожарный - всё есть. Один вход 2,5 вольта, второй либо 2, либо 3 вольта. Или один вход - лог. 1, другой - лог. 0. И меню их местами.
Но на выходе компаратора (значение АСО) всё время нулевое. Что только не делал. Выводил в порт напрямую, присваивал переменной и проч. Результат тот же. Проверял с разными вариантами программы и способах подачи входных напряжений 5 микросхем АТ88 (даже в разных корпусах) и одну АТ48. Естественно, проверяю работу портов - если без компаратора, всё отлично работает. Сначала на макетке, потом в фирменной отладочной плате.
Одинаково!

Такое чувство, что там что-то залочено. Но все описания говорят, что никаких хитрых локов - включил, и работает. А вот нифига!

Даже не знаю, где копать... :facepalm:

PS. В электронике силён, так что электрически делаю всё правильно.
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Не работает компаратор ATMega 88

Сообщение Starichok51 »

а вот мы в ясновидении не сильны. поэтому не знаем, куда копать, чтобы узнать, что ты там написал в своей программе.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Не работает компаратор ATMega 88

Сообщение BOB51 »

Смотрим в каком режиме работают линии портов ввода/вывода соответствующие выбранным входам компаратора (DIDR1).
(или те, куда мультиплексор для AIN1 указывает)
8)
AudioKiller
Открыл глаза
Сообщения: 58
Зарегистрирован: Пн окт 04, 2010 22:54:15
Откуда: Ростов-на-Дону
Контактная информация:

Re: Не работает компаратор ATMega 88

Сообщение AudioKiller »

Спасибо, ребята!
Я его победил!
Компилятор не видит значение бита ACO из регистра ACSR, несмотря на то, что его понимает и не ругается. Поэтому проверка бита АСО не срабатывает.
Вот такой "дубовый" код работает:

i = ACSR & 0b00100000; // маскируем управляющий регистр компаратора, оставляем только бит АСО
if (i)
{
PORTB.7 = 1;
}
else
{
PORTB.7 = 0;

Закрываем тему.
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

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