void tim1_count_init(void)
{
GPIOC->DDR &= ~GPIO_PIN_6;//输入
GPIOC->CR1 |= GPIO_PIN_6;//上拉输入
GPIOC->CR2 &= ~GPIO_PIN_6;//禁止外部中断功能
GPIOC->DDR &= ~GPIO_PIN_7;//输入
GPIOC->CR1 |= GPIO_PIN_7;//上拉输入
GPIOC->CR2 &= ~GPIO_PIN_7;//禁止外部中断功能
//CLK->PCKENR1 |= CLK_PCKENR1_TIM1;
TIM1->CCMR1 = 0x31;
//TIM1->CCMR2 = BIT0;//CC1通道被配置为输入,IC1映射在TI1FP1上;
//TIM1->CR2 |= BIT7;//使能计数器
TIM1->CCER1 |= 0x02;
//TIM1->CCMR2 = _OC2M=0x00;//无滤波器,以fMASTER采样
//TIM1->CCER1_CC2P=0;//捕获发生在TI2F的上升沿
//TIM1->CCMR2_OC2PE=0x00;//无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获
TIM1->SMCR |= 0x50;//选定TI2作为输入源
TIM1->SMCR |= 0x07;//TIM1_SMCR_SMS;//选中的触发输入(TRGI)的上升沿驱动计数器。
TIM1->CR1 |= 0x01;//TIM1_CR1_CEN;//使能计数器
}
uint16_t time1_get_num(void)
{
uint32_t d32;
d32 = TIM1->CNTRH;
d32 <<= 8;
d32 |= TIM1->CNTRL;
return d32;
}
|