Здравствуйте, уважаемые коллеги. Подскажите, почему Timer 23 в режиме OPM (одновибратора) останавливается. На вход P4.6 ( TIM3_ICAP1 ) постоянно идут импульсы, по которым нужно запускать Timer 3, который с задержкой формирует импуль стробирования на P6.6 . После инициализации некотое время таймер работает, а потом останавливается, будто игнорирует запускающие импульсы. Привожу инициализацию таймера.
Условие OC2R > OC1R выполняется. Но почему таймер останавливается - не пойму. Подскажите, если кто встречался с подобным.
Код
//********************************************************************************
***
// Инициализация таймера 3
// Источник тактового сигнала - MCLK = 3.2 mHz. Выход таймера 3 является сигналом
// стробирования для аналогового коммутатора
//********************************************************************************
***
void Init_timer3 (void)
{
TIM_TypeDef* tim = TIM3;
SCU_TypeDef* scu = SCU;
// Для вывода сигнала PWR_2. Запуск одновибратора по нарастающему фронту запуска
tim->CR2 = 0; //
tim->CR1 |= TIM_CR1_EN + \
TIM_CR1_OPM + \
TIM_CR1_OC1E + \
TIM_CR1_OLVL1 + \
TIM_CR1_IEDG1 + \
TIM_CR1_ECKEN; // Master Clock Enable
tim->OC1R = rh_pulse + rh_dead_time; // Счетчик сравнения 1
tim->OC2R = rh_pulse_MUX; // Счетчик сравнения 2
// Разрешение работы таймера
scu-> PRR1 |= BIT (1); // TIM23CLK is not Reset
scu-> PCGR1 |= BIT (1); // TIM23CLK running
}