Новичок
Регистрация: 04.10.2010
Адрес: Ростов-на-Дону
Сообщений: 7
Репутация: 11
|
Происходит какая-то фигня, не пойму в чём глобальная проблема.
Хочу использовать компаратор. В микроконтроллере ATMega 88. Включаю его програмно (код настроек генерится мастером среды разработки CodeVision AVR V3.40) на сравнение внешних напряжений. У него как и положено два входа, подключенных к ножкам контроллера AIN0, AIN1. И выход, который можно опрашивать програмно - системная 1 битная ACO. И вот всех книгах, интернетах и даташитах пишут, что АСО выставляется в ноль или единицу по результатам сравнения напряжений на входах (через пару тактов). Так и делаю - электрически подаю разные напряжения на входы. Контролирую входы осциллографом на всякий пожарный - всё есть. Один вход 2,5 вольта, второй либо 2, либо 3 вольта. Или один вход - лог. 1, другой - лог. 0. И меню их местами. Но на выходе компаратора (значение АСО) всё время нулевое. Что только не делал. Выводил в порт напрямую, присваивал переменной и проч. Результат тот же. Проверял с разными вариантами программы и способах подачи входных напряжений 5 микросхем АТ88 (даже в разных корпусах) и одну АТ48. Естественно, проверяю работу портов - если без компаратора, всё отлично работает. Сначала на макетке, потом в фирменной отладочной плате. Одинаково! Такое чувство, что там что-то залочено. Но все описания говорят, что никаких хитрых локов - включил, и работает. А вот нифига! Даже не знаю, где копать... PS. В электронике силён, так что электрически делаю всё правильно. PPS. В программе всё работает, но компаратор остаётся молчаливым. |
||
Оценка
|
Новичок
Регистрация: 04.10.2010
Адрес: Ростов-на-Дону
Сообщений: 7
Репутация: 11
|
Спасибо, ребята!
Я его победил! Компилятор не видит значение бита ACO из регистра ACSR, несмотря на то, что его понимает и не ругается. Поэтому проверка бита АСО не срабатывает. Вот такой "дубовый" код работает: i = ACSR & 0b00100000; // маскируем управляющий регистр компаратора, оставляем только бит АСО if (i) { PORTB.7 = 1; } else { PORTB.7 = 0; Закрываем тему. |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |