2684|6

78

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教一下大家 ,为什么我变得这个程序不需要消抖???? [复制链接]

GPIO_setLow(myGpio,GPIO_Number_19);
        GPIO_setHigh(myGpio,GPIO_Number_18);
        GPIO_setHigh(myGpio,GPIO_Number_17);
        GPIO_setHigh(myGpio,GPIO_Number_16);


        key0=GPIO_getData(myGpio,GPIO_Number_29);
        key1=GPIO_getData(myGpio,GPIO_Number_32);
        key2=GPIO_getData(myGpio,GPIO_Number_33);
        key3=GPIO_getData(myGpio,GPIO_Number_34);


//        delay_nop1(2);

        key4=GPIO_getData(myGpio,GPIO_Number_19);
        key5=GPIO_getData(myGpio,GPIO_Number_18);
        key6=GPIO_getData(myGpio,GPIO_Number_17);
        key7=GPIO_getData(myGpio,GPIO_Number_16);





        if(key4==0&&key5==1&&key6==1&&key7==1)
        {
                key0=GPIO_getData(myGpio,GPIO_Number_29);
                key1=GPIO_getData(myGpio,GPIO_Number_32);
                key2=GPIO_getData(myGpio,GPIO_Number_33);
                key3=GPIO_getData(myGpio,GPIO_Number_34);

        if(key0==0&&key1==1&&key2==1&&key3==1)
        {
                key=1;
                bili=bili+0.01;
        }
        if(key0==1&&key1==0&&key2==1&&key3==1)
                {
                        key=2;
                        bili=bili+0.1;
                }
        if(key0==1&&key1==1&&key2==0&&key3==1)
                        {
                                key=3;
                                bili=bili+1;
                        }
        if(key0==1&&key1==1&&key2==1&&key3==0)
                                {
                                        key=4;
                                        bili=bili-0.01;
                                }
        }








        GPIO_setHigh(myGpio,GPIO_Number_19);
                GPIO_setLow(myGpio,GPIO_Number_18);
                GPIO_setHigh(myGpio,GPIO_Number_17);
                GPIO_setHigh(myGpio,GPIO_Number_16);


                key0=GPIO_getData(myGpio,GPIO_Number_29);
                key1=GPIO_getData(myGpio,GPIO_Number_32);
                key2=GPIO_getData(myGpio,GPIO_Number_33);
                key3=GPIO_getData(myGpio,GPIO_Number_34);


//                delay_nop1(2);

                key4=GPIO_getData(myGpio,GPIO_Number_19);
                        key5=GPIO_getData(myGpio,GPIO_Number_18);
                        key6=GPIO_getData(myGpio,GPIO_Number_17);
                        key7=GPIO_getData(myGpio,GPIO_Number_16);

                        if(key4==1&&key5==0&&key6==1&&key7==1)
                        {


                                key0=GPIO_getData(myGpio,GPIO_Number_29);
                                key1=GPIO_getData(myGpio,GPIO_Number_32);
                                key2=GPIO_getData(myGpio,GPIO_Number_33);
                                key3=GPIO_getData(myGpio,GPIO_Number_34);
                                if(key0==0&&key1==1&&key2==1&&key3==1)
                        {
                                key=5;
                                jifen=jifen+0.01;
                        }
                                if(key0==1&&key1==0&&key2==1&&key3==1)
                                        {
                                                key=6;
                                                jifen=jifen+0.1;
                                        }
                                if(key0==1&&key1==1&&key2==0&&key3==1)
                                                        {
                                                                key=7;
                                                                jifen=jifen+1;
                                                        }
                                if(key0==1&&key1==1&&key2==1&&key3==0)
                                                                        {
                                                                                key=8;
                                                                                jifen=jifen-0.01;
                                                                        }
        }








                GPIO_setHigh(myGpio,GPIO_Number_19);
                                GPIO_setHigh(myGpio,GPIO_Number_18);
                                GPIO_setLow(myGpio,GPIO_Number_17);
                                GPIO_setHigh(myGpio,GPIO_Number_16);



                                key0=GPIO_getData(myGpio,GPIO_Number_29);
                                        key1=GPIO_getData(myGpio,GPIO_Number_32);
                                        key2=GPIO_getData(myGpio,GPIO_Number_33);
                                        key3=GPIO_getData(myGpio,GPIO_Number_34);


//                                        delay_nop1(2);


                                key4=GPIO_getData(myGpio,GPIO_Number_19);
                                                key5=GPIO_getData(myGpio,GPIO_Number_18);
                                                key6=GPIO_getData(myGpio,GPIO_Number_17);
                                                key7=GPIO_getData(myGpio,GPIO_Number_16);

                                                if(key4==1&&key5==1&&key6==0&&key7==1)
                                                {


                                                        key0=GPIO_getData(myGpio,GPIO_Number_29);
                                                                key1=GPIO_getData(myGpio,GPIO_Number_32);
                                                                key2=GPIO_getData(myGpio,GPIO_Number_33);
                                                                key3=GPIO_getData(myGpio,GPIO_Number_34);
                                                                if(key0==0&&key1==1&&key2==1&&key3==1)
                                                        {
                                                                key=9;
                                                                weifen=weifen+0.01;
                                                        }
                                                                if(key0==1&&key1==0&&key2==1&&key3==1)
                                                                        {
                                                                                key=10;
                                                                                p=p+1;
                                                                        }
                                                                if(key0==1&&key1==1&&key2==0&&key3==1)
                                                                                        {
                                                                                                key=11;
                                                                                                p=p-1;
                                                                                        }
                                                                if(key0==1&&key1==1&&key2==1&&key3==0)
                                                                                                        {
                                                                                                                key=12;
                                                                                                                weifen=weifen-0.01;
                                                                                                        }
                }







                                GPIO_setHigh(myGpio,GPIO_Number_19);
                                                                GPIO_setHigh(myGpio,GPIO_Number_18);
                                                                GPIO_setHigh(myGpio,GPIO_Number_17);
                                                                GPIO_setLow(myGpio,GPIO_Number_16);



                                                                key0=GPIO_getData(myGpio,GPIO_Number_29);
                                                                        key1=GPIO_getData(myGpio,GPIO_Number_32);
                                                                        key2=GPIO_getData(myGpio,GPIO_Number_33);
                                                                        key3=GPIO_getData(myGpio,GPIO_Number_34);


                                                                key4=GPIO_getData(myGpio,GPIO_Number_19);
                                                                                                key5=GPIO_getData(myGpio,GPIO_Number_18);
                                                                                                key6=GPIO_getData(myGpio,GPIO_Number_17);
                                                                                                key7=GPIO_getData(myGpio,GPIO_Number_16);


//                                                                                                delay_nop1(g);

                                                                if(key4==1&&key5==1&&key6==1&&key7==0)
                                                                                                                {


                                                                        key0=GPIO_getData(myGpio,GPIO_Number_29);
                                                                                key1=GPIO_getData(myGpio,GPIO_Number_32);
                                                                                key2=GPIO_getData(myGpio,GPIO_Number_33);
                                                                                key3=GPIO_getData(myGpio,GPIO_Number_34);
                                                                                if(key0==0&&key1==1&&key2==1&&key3==1)
                                                                                                                        {
                                                                                                                                key=13;
                                                                                                                                bili=bili-0.1;
                                                                                                                        }
                                                                if(key0==1&&key1==0&&key2==1&&key3==1)
                                                                                                                                        {
                                                                                                                                                key=14;
                                                                                                                                                jifen=jifen-0.1;
                                                                                                                                        }
                                                                if(key0==1&&key1==1&&key2==0&&key3==1)
                                                                                                                                                        {
                                                                                                                                                                key=15;
                                                                                                                                                                p=p+0.1;
                                                                                                                                                        }
                                                                if(key0==1&&key1==1&&key2==1&&key3==0)
                                                                                                                                                                        {
                                                                                                                                                                                key=16;
                                                                                                                                                                                p=p-0.1;
                                                                                                                                                                        }
                                }

最新回复

好长的程序啊  详情 回复 发表于 2014-8-25 10:50
点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
可以直接使用,不用再加延时了,不会出现都抖动,不知道为什么。我是根据C51的键盘扫描来编写的,用的是句柄和指针的形式。
 
 

回复

603

帖子

1

TA的资源

纯净的硅(中级)

板凳
 
首先惊讶于这个里出外进的程序是怎样变出来的,这么长……

其次同样惊讶于这个代码为啥就不需要消抖……话说它为啥需要消抖……到底需不需要消抖?

嗯……坐等高手……

点评

老师里出外进啥意思??  详情 回复 发表于 2014-8-25 10:46
 
 
 

回复

973

帖子

15

TA的资源

纯净的硅(高级)

4
 
你的程序太长,我没看,一是可能你的程序里还有其他东西,可能消抖已经加无意进去了;二是硬件上可能有措施,也就是可能硬件上已经消抖了。

点评

程序总运行时间是133US左右,最长的延迟是在显示中 ,100US  详情 回复 发表于 2014-8-25 10:49
个人签名我来到这个世界,就是为了遇见你。在某天我们会相遇,然后在一起,直到最后一起离去。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

5
 
sjtitr 发表于 2014-8-25 10:11
首先惊讶于这个里出外进的程序是怎样变出来的,这么长……

其次同样惊讶于这个代码为啥就不需要消抖…… ...

老师里出外进啥意思??
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

6
 
一个小白 发表于 2014-8-25 10:38
你的程序太长,我没看,一是可能你的程序里还有其他东西,可能消抖已经加无意进去了;二是硬件上可能有措施 ...

程序总运行时间是133US左右,最长的延迟是在显示中 ,100US
 
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

7
 
好长的程序啊
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表