OpenEdv-开源电子网

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

关于mini板的红外的问题

[复制链接]

3

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-13
在线时间
0 小时
发表于 2013-10-13 20:14:54 | 显示全部楼层 |阅读模式
 有点不明白中断程序,是不是一帧数据只产生一次中断?中断设定的是下降沿触发,可一帧数据里面好像有很多下降沿,那这样不是总是初始化ok=0?那个接收头0和1是反向的是吗?额,不懂了。。
There's always hope.hoho~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-13
在线时间
0 小时
 楼主| 发表于 2013-10-13 20:15:23 | 显示全部楼层
void EXTI1_IRQHandler(void)
{       
u8 res=0;
    u8 OK=0; 
    u8 RODATA=0;     
while(1)
    {        
        if(RDATA)//有高脉冲出现
        {
            res=Pulse_Width_Check();//获得此次高脉冲宽度       
            if(res==250)break;//非有用信号
            if(res>=200&&res<250)OK=1; //获得前导位(4.5ms)
            else if(res>=85&&res<200)  //按键次数加一(2ms)
            {         
                Remote_Rdy=1;//接受到数据
                Remote_Cnt++;//按键次数增加
                break;
            }
            else if(res>=50&&res<85)RODATA=1;//1.5ms
            else if(res>=10&&res<50)RODATA=0;//500us
            if(OK)
            {
                Remote_Odr<<=1;
                Remote_Odr+=RODATA; 
                Remote_Cnt=0; //按键次数清零
            }   
        }    
    }        
EXTI->R=1<<1;      //清除中断标志位        
}
There's always hope.hoho~
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-13
在线时间
0 小时
 楼主| 发表于 2013-10-13 20:36:39 | 显示全部楼层
哎。。。没人,自己自挽。。
There's always hope.hoho~
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
发表于 2013-10-14 08:08:11 | 显示全部楼层
你百度一下红外编码,你的问题是没明白如果那个编码头符合要求,后面就进入读编码程序,后面那一堆髙低脉冲就是编码。如长按摇控键,后面还会有编码,但编码头己不符合要求,但也可利用,比如控制电机运动,按下运动松开停止。你可以用逻辑分析仪捉一串编码研究一下就明白了。
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-13
在线时间
0 小时
 楼主| 发表于 2013-10-14 09:06:23 | 显示全部楼层
回复【4楼】chinafox:
---------------------------------
可能是我没搞懂,我就是不明白设定的是下降沿触发中断,当确定了前导位之后后面便是地址或数据,那在发送数据和地址期间不是有很多高低电平,那是不是也有下降沿,一有下降沿会不会又执行中断,从而会不会自己打断自己?我看用51红外解码的程序就是这样写的,他先确定前导位后,就开始中断,用上一次的下降沿与此次的下降沿的间隔时间来判断是0或1的编码。。
There's always hope.hoho~
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-13
在线时间
0 小时
 楼主| 发表于 2013-10-14 10:23:32 | 显示全部楼层
其实我的问题很简单,就是stm32中断会不会自己打断自己?会不会像51一样在中断里关掉中断写EX0=0?现在得出结果是不会,那一切疑问都将烟消云散。。
There's always hope.hoho~
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-13
在线时间
0 小时
 楼主| 发表于 2013-10-14 10:23:44 | 显示全部楼层
回复【4楼】chinafox:
---------------------------------
其实我的问题很简单,就是stm32中断会不会自己打断自己?会不会像51一样在中断里关掉中断写EX0=0?现在得出结果是不会,那一切疑问都将烟消云散。。
There's always hope.hoho~
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-11 02:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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