Микроконтроллеры семейства AVR. Воробьева Г.С. - 78 стр.

UptoLike

Составители: 

TCNT1 = 0x10000 - (Freq/1024);
PORTD ^= 0xFF; //меняем состояние выводов, горет будут все
индикаторы
}
int main (void)
{
DDRD = 0xFF; //Инициализация порта
TCCR1A = 0; //Инициализация счётчика
TCCR1B = 5; //Коэффициент деления 1024
TCNT1 = 0x10000 - (Freq/1024);
TIFR = 0; //Сбрасываем все флаги прерываний от T/C1
TIMSK = 0b10000000; //Прерывание от переполнения счётчика 1
GIMSK = 0; //запрет внешних прерываний
sei(); //глобальное разрешение прерываний
while(1); //Ожидание прерывания
}
Аналогово-цифровой преобразователь
Пример 4.
Светодиоды к порту D, потенциометр к выходу PA0. Программа
светофор. Если напряжение <1 В, то горят (110), если между 1..2В, то
горят (101) , если >2 В, то горят (011).
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
int red, green; //глобальные переменные для управления светофором
red = 481;
green = 204;
INTERRUPT(SIG_ADC) //Прерывание от АЦП
{
unsigned int ADCdata; //Переменная для хранения значения
ADCdata = ADCW;
if (ADCdata > Red) PORTB = 3; //Если U > 2 В, то горят (011) светодиод
else if (ADCdata < Green) PORTB = 6; //
Если U < 1 B, то горят (110)
else PORTB = 5 //Если не выполняется не одно из этих условий
значит положение U 1..2 В, то горят (101)
78