我把 TIMER1 和 TIMER8 配置成外部时钟模式2 记录外部脉冲数
TIMER7定时溢出读取 TIMER1和TIMER8的CNT的值,在其他地方读取CNT的值就好使,但在TIMER7中断里,不能把TIMER1 和 TIMER8计数器的值赋值给变量
请各位帮忙看看怎么回事
//定时器 7 中断服务程序
void TIM7_IRQHandler(void)
{
if(TIM7->SR&0X0001) //溢出中断
{
zi=TIM1->CNT;
yi=TIM8->CNT;
TIM7->SR&=~(1<<0); //清除中断标志位
}
}
void TIM7_Int_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<5; //TIM7 时钟使能
TIM7->ARR=arr; //设定计数器自动重装值//刚好 0.1ms
TIM7->PSC=psc; //预分频器 7200,得到 10Khz 的计数时钟
TIM7->DIER|=1<<0; //允许更新中断
TIM7->CR1|=0x01; //使能定时器 7
MY_NVIC_Init(2,2,TIM7_IRQn,2);//抢占 2,子优先级 2,组 2
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
RCC->APB2ENR|=1<<13; //TIM8时钟使能
RCC->APB2ENR|=1<<2; //使能 PORTA 时钟
GPIOA->CRL&=0XFFFFFFF0; //PA0 清除之前设置
GPIOA->CRL|=0X00000008; //PA0 输入
GPIOA->ODR|=0<<0; //PA0 下拉
TIM8->ARR=arr; //设定计数器自动重装值
TIM8->PSC=psc; //预分频器
//外部时钟模式2
TIM8->SMCR&=0xF0FF;
TIM8->SMCR|=0x4000;
TIM8->CR1|=1<<0;
}
这是我对TIM1 和 8的设置
原子哥 麻烦帮看一下
一周热门 更多>