Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Программа измерения длительности импульсов

ICR1
На вывод ICI подаются импульсы, длительность которых измеряется.

 
 

 

 


*******************************************************************************

#include <mega8.h>
Unsigned char orl // счетчик переполнений
Unsigned int edR, edF; // для сохранения кодов фронта и спада
unsigned long pulse; // количество тактовых импульсов внутри

//интервала
interrupt (sig_overflow);
{
orl++ ; // увеличиваем счетчик переполнения
}
interrupt (sig_input_capture) /* обработка прерываний при захвате на входе*/
{
if ((PINВ & 0x01)!=0) /* если на выводе 0 порта В высокий уровень */
{{
edR = IСR1;
TCCR1B = TCCR1B & 0xBF /* устанавливаем следующий захват по ниспадающему фронту */
orl = 0; // сброс счетчика переполнений
}}
else
{ edF = ICR1; /*фиксация времени ниспадающего фронта*/
TCCR1B = TCCR1B & 0x FF; /* следующий захват по нарастающему фронту */
Pulse = enF – enR
}}
int main (void)
{ DDRВ = 0x00; // порт В на ввод
TCCR1B = 0xC2; // захват по нарастающему фронту, коэф.деления = 8
TCCR1A = 0x00;
TIMSK = 0x84; // разрешает прерывание по захвату и переполнению
#asm
sei
end asm
while { // бесконечный цикл в ожидании прерывания
}}

 


<== предыдущая страница | следующая страница ==>
Общие сведения. Во всех моделях семейства имеются по крайней мере 2 таймера-счетчика (Т/С): 8-разрядный (T0, T2, ) и 16-разрядный (T1 | Лекция 3 Трансакции и трансакционные издержки

Дата добавления: 2015-07-26; просмотров: 178; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.