搜索
bottom↓
回复: 15

433M解码,坛友们喜欢用中断还是主循环?没想到干扰真多

[复制链接]

出130入129汤圆

发表于 2019-10-13 22:25:49 | 显示全部楼层 |阅读模式
别人给了个板子,上面无线接收芯片是CMT2210A,单片机是STM8S103F3P6,已经将一个信噪比阈值的参数设置为75(出厂默认54),希望降低干扰,但是干扰信号还是非常多。

用中断方式写了下解码,连续2次接收到正确数据判断为接收成功,偶尔会失败,因为干扰太多了,头一次接收正确,第二次的数据被破坏了。

这逻辑分析仪的截图是没按遥控器时候抓取的,那么多干扰,stm8的定时器输入捕获模式频繁进中断了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-10-13 22:36:44 | 显示全部楼层
我是用中断的,主要是把中断里的处理量减少。

出130入129汤圆

 楼主| 发表于 2019-10-13 22:41:04 | 显示全部楼层
一心2013 发表于 2019-10-13 22:36
我是用中断的,主要是把中断里的处理量减少。

我这有个500Hz的周期性干扰,搞不清楚哪里来的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-10-13 22:46:59 | 显示全部楼层
CMT2210A设置休眠唤醒模式干扰会降低很多,只是需要发射持续一段时间。

出130入129汤圆

 楼主| 发表于 2019-10-13 22:49:32 来自手机 | 显示全部楼层
zhw950 发表于 2019-10-13 22:46
CMT2210A设置休眠唤醒模式干扰会降低很多,只是需要发射持续一段时间。

默认就是休眠几个ms的吧,这个我没有修改

出0入0汤圆

发表于 2019-10-13 23:04:35 | 显示全部楼层
定时器,50US中断一次,进行IO扫描计数非常好用.

出0入0汤圆

发表于 2019-10-13 23:05:29 | 显示全部楼层
用定时查询吧

出130入129汤圆

 楼主| 发表于 2019-10-13 23:07:49 来自手机 | 显示全部楼层
sz-wtp 发表于 2019-10-13 23:04
定时器,50US中断一次,进行IO扫描计数非常好用.

你是定时器中断进去查询,20kHz,对stm8来说有点高了

出0入0汤圆

发表于 2019-10-13 23:13:00 | 显示全部楼层
68336016 发表于 2019-10-13 23:07
你是定时器中断进去查询,20kHz,对stm8来说有点高了

一点也不高,效果非常好.
这个是解码程序.你参考一下.每50uS中断扫一次IO.

    IoState =IR_RXD;
    if(IoState){
        if(TimeH<250)TimeH++;
    }
    else{
        if(TimeL<250)TimeL++;
    }

    if((!IoState)&&(UpState)){        //下降沿
        if(Task==0){            //收同步头
                        if((TimeL<=(228+50))&&(TimeL>=(228-50))){
                                if((TimeH<=(113+30))&&(TimeH>=(113-30))){
                        BitCount=0;
                        ByteCount=0;
                                        Task++;
                                }
                else if((TimeH<=(56+20))&&(TimeH>=(56-20))){
                                        if(IrTime !=0){
                                                IrTime=30;
                                               
                                                if(IrCode !=0xFF)IrOkFlag=1;
                                        }
                                }
            }
        }
        else if(Task==1){       //收数据
            if((TimeL<=(14+5))&&(TimeL>=(14-5))){
                if((TimeH<=(14+5))&&(TimeH>=(14-5)))        RxData[ByteCount] &= ~(1<<BitCount);
                else if((TimeH<=(41+10))&&(TimeH>=(41-10))) RxData[ByteCount] |= (1<<BitCount);
                else                                        Task=0;

                BitCount++;
                if(BitCount>=8){
                    BitCount=0;
                    ByteCount++;
                    if(ByteCount>=4){
                        ByteCount=0;
                                               
                                                if((((RxData[0]==0x00) && (RxData[1]==0xBF)) || (SET_IR==0)) && ((RxData[2]^RxData[3]) ==0xFF)){
                                                        IrCode=RxData[2];
                                                        IrLockCode=IrCode;
                                                        IrOkFlag=1;
                                                        IrTime=30;
                                                }
                                                Task=0;
                    }
                }
            }
            else{
                Task=0;
            }
        }
        else{
            Task=0;
        }

        TimeH=0;
        TimeL=0;
    }

    UpState=IoState;

出0入0汤圆

发表于 2019-10-14 08:30:52 | 显示全部楼层
68336016 发表于 2019-10-13 22:41
我这有个500Hz的周期性干扰,搞不清楚哪里来的

应该是环境杂波吧,以前用过315 433模块,这种模块似乎没有任何过滤,直接收到什么就送过来,然后也是一堆杂波,我当时是在中断里处理,接收一个马上记录然后退出

出5入10汤圆

发表于 2019-10-14 09:15:08 | 显示全部楼层
定时器里面直接计数查询好的很

出0入0汤圆

发表于 2019-10-14 09:20:15 | 显示全部楼层
定时查询方式抗扰能力比较强

出0入95汤圆

发表于 2019-10-14 09:42:49 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2019-10-14 09:49:25 | 显示全部楼层
定时器中断方式比较可靠。外部边沿中断,或定时器捕获中断万一遇到客户那边有连续强干扰的情况,单片机就做不了别的事了。

出0入8汤圆

发表于 2019-10-14 14:28:23 | 显示全部楼层
我都是125us的基本定时器 进入后查询IO口状态 来解码的。

出10入18汤圆

发表于 2019-10-14 14:31:53 | 显示全部楼层
用定时器做,抗干扰比较强。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 08:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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