OpenEdv-开源电子网

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

红外接收实验 数据接收变量

[复制链接]

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2010-12-21
在线时间
0 小时
发表于 2011-3-24 18:37:30 | 显示全部楼层 |阅读模式
红外接收实验,中断处理程序中:

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;      //清除中断标志位  
}

问题: 对与红色字体部分:什么意思?   OK=1不是只表示 接收到了 4.5ms 的引导码; 

 Remote_Odr 不是表示整体接收的32位数据吗 ? 当OK !=1 时,这个变量怎么增加呢? 


     





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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-3-24 19:29:03 | 显示全部楼层
回复【楼主位】cybrian:
-------------------------------
是要增加啊,用来记录32个BIT。注意RODATA在这里只可能是1或者0.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2010-12-21
在线时间
0 小时
 楼主| 发表于 2011-3-24 20:04:28 | 显示全部楼层
回复【2楼】正点原子:
-------------------------------
 比如:第一次中断,先接到4.5ms的前导码,此时OK=1,执行增加;
但是,当再一次中断时,OK不等于1了啊,增加不是不执行了吗 ?  Remote_Odr 怎么增加下一位的?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-3-24 21:12:32 | 显示全部楼层
中断里面要接收完一次,才退出的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2010-12-21
在线时间
0 小时
 楼主| 发表于 2011-3-24 22:09:16 | 显示全部楼层
回复【4楼】正点原子:
-------------------------------
就是这一次中断中,完成一次32位的发送吗?       只要不清除中断标志位,是不是就不再响应新的中断啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-3-24 22:28:35 | 显示全部楼层
回复【5楼】cybrian:
-------------------------------
是的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2010-12-21
在线时间
0 小时
 楼主| 发表于 2011-3-25 07:34:04 | 显示全部楼层
回复【6楼】正点原子:
-------------------------
非常感谢原子大哥,昨晚想了一晚上,越想越糊涂,你这一句话就解决了~~    ,
基础应用还有待提高呀 
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2011-5-1
在线时间
0 小时
发表于 2011-5-1 10:19:41 | 显示全部楼层
请各位大侠帮忙解释一下问题:1、外部中断明明是下降沿中断,怎么在中断服务程序里面去判断管脚为高电平?我测试过上升沿中断也是可以的,觉得很奇怪  2、我觉得在中断中去延时几个ms去干活,会影响整个系统其它的功能,例如在读写i2c时,几个ms的中断会引起i2c读写失败。
Ex_NVIC_Config(GPIO_A,1,FTIR);//将line1映射到PA.1,下降沿触发.    
void EXTI1_IRQHandler(void)  //外部中断服务程序  
{       
u8 res=0;
    u8 OK=0; 
    u8 RODATA=0;     
while(1)
    {        
        if(RDATA)//有高脉冲出现
     
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-1 11:11:06 | 显示全部楼层
回复【8楼】wlp1981:
-------------------------------
下降沿触发,只是让程序进入红外识别的中断.
而剩下的所有事情都是在中断里面完成的,所以肯定会有高低电平的判断.
你说的几个ms延时,确实会有问题.所以这个只是个参考解码程序,大家可以自己优化的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2011-5-1
在线时间
0 小时
发表于 2011-5-2 10:07:16 | 显示全部楼层

感谢原子兄弟,4年没用这玩样,都快忘光了,记得以前使用外部中断加定时器(汇编)实现这个功能的,又要保证红外通讯、串口通讯、i2c能同时工作,不能有任何一个任务失败。以前的代码也被删了,时光一去不复返啊

回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2014-2-20 19:12:24 | 显示全部楼层
回复【5楼】cybrian:
---------------------------------
这个特点怎么感觉和51有点不一样
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 07:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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