Аналоговый компаратор

Материал из Automata.

(Различия между версиями)
Перейти к: навигация, поиск
м
м
Строка 27: Строка 27:
SREG = 0x80;//глобальное разрешение прерываний;
SREG = 0x80;//глобальное разрешение прерываний;
}
}
-
<source>
+
</source>

Версия 18:32, 24 февраля 2008

<source lang="c">

  1. include <stdint.h>
  2. include <avr/io.h>
  3. include <avr/interrupt.h>

//логическая переменная состояния РС7; static volatile uint8_t status = 0; //обработчик прерывания от компаратора; ISR (ANA_COMP_vect) { if (status == 0) {//если напряжения на выводе PC7 нет, то PORTC |= 0x80;//подаем на него логическую "1" и status = 1;//запаминаем новое состояние; } else {//если есть, то PORTC &= 0x7f;//подаем на вывод логический "0" и status = 0;//запаминаем новое состояние; }; } //главная функция; int main (void) { DDRB = 0xff;//настраиваем выводы порта В на выход; PORTB = 0x00;//без подачи напряжения; DDRC = 0xff;//настраиваем выводы порта С на выход; PORTC = 0x00;//без подачи напряжения;

ACSR = _BV(ACBG) | _BV(ACIE);//выбираем внутреннее опорное напряжение и разрешаем прерывания от компаратора; SREG = 0x80;//глобальное разрешение прерываний; } </source>

Личные инструменты
Микроконтроллеры