打印

读不到定时器中断状态

[复制链接]
308|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
稻花香1号|  楼主 | 2020-4-13 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么读取定时器的SR = 0,但是却能进中断,
在主函数printf打印tmp的
初始化代码[C] 纯文本查看 复制代码void TIM5_Cap_Init(u16 arr,u16 psc)//ch3 pa2
{                 
        RCC->APB1ENR|=1<<3;           //TIM5 时钟使能
        RCC->APB2ENR|=1<<2;            //使能PORTA时钟  
         
        GPIOA->CRL&=0XFFFFF0FF;        //PA2 清除之前设置  
        GPIOA->CRL|=0X00000800;        //PA2 输入   
        GPIOA->ODR|=0<<2;                //PA2 下拉
          
        TIM5->ARR=arr;                  //设定计数器自动重装值   
        TIM5->PSC=psc-1;                  //预分频器
       
        TIM5->CCMR1=0x0101;                //捕获通道1,2,3,4分别映射到CH1,2,3,4,不滤波,不分频
        TIM5->CCMR2=0x0101;
//        TIM5->CCMR2|=1<<0;                //CC3S=01         选择输入端 IC3映射到TI3上
//         TIM5->CCMR2|=0<<4;                 //IC3F=0000 配置输入滤波器 不滤波
//         TIM5->CCMR2|=0<<2;         //IC3PS=00         配置输入分频,不分频

        TIM5->CCER|=0<<9;                 //CC3P=0        上升沿捕获
        TIM5->CCER|=1<<8;                 //CC3E=1         捕获使能

        TIM5->DIER|=1<<3;           //允许捕获中断                               
        TIM5->DIER|=1<<0;           //允许更新中断       
        TIM5->CR1|=0x01;            //使能定时器5
        MY_NVIC_Init(2,0,TIM5_IRQn,2);//抢占2,子优先级0,组2          
}中断代码
[C] 纯文本查看 复制代码void TIM5_IRQHandler(void)        //CH3 PA2
{                     
//        u16 tsr;
//        tsr=TIM5->SR;        //状态寄存器
        if((TIM5->SR & 0X0008) == 1)
        {
//                tmp = TIM5->CNT;
//                debug ++;
        }
        tmp = TIM5->SR;
                debug ++;
       
       
        TIM5->SR = 0;        //清楚中断标志
//        TIM5->SR&=~(1<<0);//清除更新中断标志位          
//        TIM5->SR&=~(1<<3);//清除捕获3中断标志位                 
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

381

主题

382

帖子

1

粉丝