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

 
 
> Срабатывает через раз прерывание по таймеру., Срабатывает через раз прерывание по таймеру.
IVN2013
сообщение Jan 27 2015, 19:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 12-08-13
Пользователь №: 77 889



Доброго времени суток! Пишу программу на mega16, компилятор image craft. На ножку таймера T1 извне подается меандр с периодом в 10 мс. Нужно чтобы прерывание таймера (по совпадению) срабатывало по каждому переднему фронту приходящего сигнала. Столкнулся с проблемой: прерывание по таймеру(по совпадению) срабатывает через раз(по одному фронту есть, по следующему нет , потом опять есть) или вообще беспорядочно.
Повторил код в отдельной программе - результат тоже. Использую 16-разрядный timer1. А нужно чтобы оно по каждому переднему фронту было.
А вот и куски кода связанные с таймером:
Код
#pragma interrupt_handler timer1_COMPB:8                - объявляю прерывание по совпадению

void timer1_init(void)                                        - инициализирую таймер      
{
TIMSK |= 0x08;//флаг OCIE1B в 1 Timer/Counter1, Output Compare B Match Interrupt Enable
TCCR1B = 0x00; //stop timer                                      
TCNT1 = 0x00; //set count value
OCR1B  = 0x01;
TCCR1B = 0x07; //start timer    External clock source on T1 pin. Clock on rising edge- 0x07   Clock on falling edge- 0x06
}

void timer1_COMPB(void)                            - обработчик прерывания
{
TCNT1 = 0x00; //set count value
TCCR1B = 0x07; //start timer    External clock source on T1 pin. Clock on rising edge- 0x07   Clock on falling edge- 0x06
...
...
...

}

void main( void )
{
timer1_init(void);
...
...
...
}


Подскажите из - за чего может быть такой результат. Спасибо!

Сообщение отредактировал IVN2013 - Jan 27 2015, 19:42
Go to the top of the page
 
+Quote Post



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

 


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


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