AVR Mega8. Проблема с Input Capture TCNT1 при смене полярности импульса (edge select)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ДМ 19 мая 2004 г. 22:05

От нижепреведенного кода ожидалось повторение на PORTB.PB2 сигнала на ICP.

interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{
if ( TCCR1B & ( 1<< ICES1 ) )
{
PORTB.PB2 = 1;
TCCR1B &= ~( 1<< ICES1 );
}
else
{
PORTB.PB2 = 0;
TCCR1B |= ( 1<< ICES1 );
}
}

Однако, на выходе только «иголки», период следования которых равен периоду меандра ICP.
Такое впечатление, что сразу после выхода из прерывания пограмма опять попадает в него, где выключает выходной сигнал и соответственно меняет полярность сигнала. Шумоподавитель включен. Чистка влага ICF1 не помогала.

Может быть, кто сталкивался с такой проблемой, или есть идеи?

Спасибо!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru