新手入门
- 积分
- 12
- 金钱
- 12
- 注册时间
- 2016-8-2
- 在线时间
- 3 小时
|
5金钱
下面是我的配置,实际测试TIM14时钟只有8M,我的PSC设为7之后只有1M.....这个默认不是该48M的么?哪里设置不对?看了几遍寄存器,没发现哪里有设置不同。
RCC->APB1ENR |= RCC_APB1ENR_TIM14EN; //Enable the peripheral clocks of Timer 14
TIM14->PSC = 7;
TIM14->CCMR1 |= TIM_CCMR1_CC1S_0;// | TIM_CCMR1_IC1F_0 | TIM_CCMR1_IC1F_1; /* (1)*/
TIM14->CCER |= TIM_CCER_CC1E; /* (2) */
TIM14->DIER |= TIM_DIER_CC1IE; /* (3) */
TIM14->CR1 |= TIM_CR1_CEN; /* (4) */
NVIC_EnableIRQ(TIM14_IRQn);
NVIC_SetPriority(TIM14_IRQn,0);
void TIM14_IRQHandler(void)
{
uint32_t int_pend;
int_pend = TIM14->SR;
if((int_pend & TIM_SR_CC1IF) == TIM_SR_CC1IF)
{
if(RCP_EDGE == 0)
{
TIM14->CCER |= TIM_CCER_CC1P; //Enable faling edge intterupt
RCP_EDGE = 1;
}
else
{
TIM14->CCER &= ~(TIM_CCER_CC1P); //Enable rising edge intterupt
RCP_EDGE = 0; // Set first edge flag
}
RC_pulse_meu();
}
TIM14->SR &= ~(int_pend);
}
|
|