CODE
void Tim3Init(void) //ir signal capture
{
//PA6 -TIM3_CH1,PB0-TIM3_CH3,PB1-TIM3_CH4
NVIC_SetPriority(TIM3_IRQn, 1);
NVIC_EnableIRQ(TIM3_IRQn);
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
//INPUT TI1
//Active input selection. "01" in CC1S -> tie TIM3_CCR1 to input TI1
TIM3->CCMR1 |= TIM_CCMR1_CC1S_0;
//filter - 4 ticks. IC1F = 0010.
TIM3->CCMR1 |= TIM_CCMR1_IC1F_1;
//falling edge triggers capture
TIM3->CCER |= TIM_CCER_CC1P;
//input signal prescaler off
TIM3->CCMR1 &= ~TIM_CCMR1_IC1PSC;
//Enable capture from the counter into the capture register
TIM3->CCER |= TIM_CCER_CC1E;
//capture/compare chan 1 interrupt enable
TIM3->DIER |= TIM_DIER_CC1IE;
TIM3->PSC = 72 - 1; //1us
TIM3->ARR = 0xFFFE; //reload
TIM3->CR1 |= TIM_CR1_CEN;
}
{
//PA6 -TIM3_CH1,PB0-TIM3_CH3,PB1-TIM3_CH4
NVIC_SetPriority(TIM3_IRQn, 1);
NVIC_EnableIRQ(TIM3_IRQn);
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
//INPUT TI1
//Active input selection. "01" in CC1S -> tie TIM3_CCR1 to input TI1
TIM3->CCMR1 |= TIM_CCMR1_CC1S_0;
//filter - 4 ticks. IC1F = 0010.
TIM3->CCMR1 |= TIM_CCMR1_IC1F_1;
//falling edge triggers capture
TIM3->CCER |= TIM_CCER_CC1P;
//input signal prescaler off
TIM3->CCMR1 &= ~TIM_CCMR1_IC1PSC;
//Enable capture from the counter into the capture register
TIM3->CCER |= TIM_CCER_CC1E;
//capture/compare chan 1 interrupt enable
TIM3->DIER |= TIM_DIER_CC1IE;
TIM3->PSC = 72 - 1; //1us
TIM3->ARR = 0xFFFE; //reload
TIM3->CR1 |= TIM_CR1_CEN;
}
На 100 пиновом камне STM32F103VB этот код не работает, хотя та же нога посажена на PA6 – TIM3 CH1.
Пишу на IAR. В чем может быть проблема?