Реле Tianbo - ресурс 10 млн переключений

Не работает компаратор ATMega88, ATMega48

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

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

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

PS. В электронике силён, так что электрически делаю всё правильно.
PPS. В программе всё работает, но компаратор остаётся молчаливым.
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Новичок
 
Аватар для AudioKiller
 
Регистрация: 04.10.2010
Адрес: Ростов-на-Дону
Сообщений: 7
Репутация: 11
1 0
0 0
 
15.04.2024 20:55 #2
Спасибо, ребята!
Я его победил!
Компилятор не видит значение бита ACO из регистра ACSR, несмотря на то, что его понимает и не ругается. Поэтому проверка бита АСО не срабатывает.
Вот такой "дубовый" код работает:

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

Закрываем тему.
Оценка
Гуру
 
Регистрация: 28.06.2012
Сообщений: 4,676
Репутация: 1102
1,248 94
480 1
 
15.04.2024 21:33 #3
Спасибо !
Оценка
Новичок
 
Регистрация: 29.11.2007
Сообщений: 37
Репутация: 26
12 12
0 5
 
18.04.2024 12:37 #4
дожили. уже компаратор без процессора никак не получается. зато разучились железки на Луну сажать. видимо, тоже программа порылась?
Оценка
Ответ
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 02:15.
Обратная связь РадиоЛоцман Вверх