реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопрос Про Аналоговый Компаратор., Только начал изучать.
vitiv
сообщение Jan 9 2009, 10:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 20-04-08
Пользователь №: 36 939



Повесил на 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 и наоборот светодиод мигает.
Вопрос- а чем отслеживать в каком состоянии выход компаратора?
Что бы в программе выполнять действия в зависимости от того на какой ноге напряжение выше.
Go to the top of the page
 
+Quote Post
smac
сообщение Jan 9 2009, 11:38
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003



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

Use ACO bit, Luke! smile.gif
А вообще неплохо бы контроллер и компилятор указывать
Go to the top of the page
 
+Quote Post
vitiv
сообщение Jan 9 2009, 12:15
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 20-04-08
Пользователь №: 36 939



Цитата(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();};
Go to the top of the page
 
+Quote Post
Petka
сообщение Jan 9 2009, 12:32
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(vitiv @ Jan 9 2009, 15:15) *
#define COMPARE_RESULT ACSR&(1<<ACO)

чуть надёжнее:
Код
#define COMPARE_RESULT (ACSR&(1<<ACO))
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016