OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2726|回复: 2

红外遥控实验课程代码漏洞疑问

[复制链接]

4

主题

16

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-7-21
在线时间
8 小时
发表于 2020-8-4 09:19:49 | 显示全部楼层 |阅读模式
本帖最后由 fgq542 于 2020-8-4 09:35 编辑

我听了红外遥控实验课,仔细思考了课程27寄存器版的原代码,发现一个疑问。就是TIM4中断服务程序,void TIM4_IRQHandler(void) 部分原代码如下:
void TIM4_IRQHandler(void)
{                              
       ......


        if(TIM_GetITStatus(TIM4,TIM_IT_CC4)!=RESET)
        {                        
                if(RDATA)   
                {
                  TIM_OC4PolarityConfig(TIM4,TIM_ICPolarity_Falling);                                               
                        TIM_SetCounter(TIM4,0);                                                        
                        RmtSta|=0X10;  
                        // 中间某个时间遥控器键值处于高平时, 当此红色区代码退出后定时器开始重新计时一段时间后还未发生下降沿中断,  发生了一个定时器更新中断, 假设此时计数器值为N1,  程序处理完此中断后, 定时器又会重新计数, 再发生下降沿中断程序再处理此中断时, 再读计数器的值就会失了定时器更新中断前的计数值N1, 不知道这个问题是怎么处理的.                                            }else
                {
                        Dval=TIM_GetCapture4(TIM4);                                       
                  
                        TIM_ICInitStructure1.TIM_Channel = TIM_Channel_4;  
            .......




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

16

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-7-21
在线时间
8 小时
 楼主| 发表于 2020-8-4 09:43:41 | 显示全部楼层
发错区了,本想发到示助区的
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-7-21
在线时间
8 小时
 楼主| 发表于 2020-8-4 09:52:07 | 显示全部楼层
不会溢出中断, 我错了.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 18:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表