Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос Про Аналоговый Компаратор.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
vitiv
Повесил на Ain0 и Ain1 резисторный делитель. Написал програмку вот кусочек:

unsigned char comp_ctr=0;
// Analog Comparator interrupt service routine
interrupt [ANA_COMP] void ana_comp_isr(void)
{
comp_ctr++;
ACSR &=~(1<<3); отключение компаратора
PORTD.3 = 1; включение светодиода
delay_ms(50); пауза
PORTD.3 = 0; выключение светодиода
ACSR |=(1<<3); включение компаратора
}

Кручу резистор все прекрасно работает, при переходах из 0 в 1 и наоборот светодиод мигает.
Вопрос- а чем отслеживать в каком состоянии выход компаратора?
Что бы в программе выполнять действия в зависимости от того на какой ноге напряжение выше.
smac
Цитата(vitiv @ Jan 9 2009, 13:47) *
Вопрос- а чем отслеживать в каком состоянии выход компаратора?
Что бы в программе выполнять действия в зависимости от того на какой ноге напряжение выше.

Use ACO bit, Luke! smile.gif
А вообще неплохо бы контроллер и компилятор указывать
vitiv
Цитата(smac @ Jan 9 2009, 15:38) *
Use ACO bit, Luke! smile.gif
А вообще неплохо бы контроллер и компилятор указывать

Мега88 и CodeVizionAVR.
За ответ спасибо все понял. Точнее подсказали.
Вот так правильно?

#define ACO 5
#define COMPARE_RESULT ACSR&(1<<ACO)
...
if (COMPARE_RESULT) {bla-bla-bla();};
Petka
Цитата(vitiv @ Jan 9 2009, 15:15) *
#define COMPARE_RESULT ACSR&(1<<ACO)

чуть надёжнее:
Код
#define COMPARE_RESULT (ACSR&(1<<ACO))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.