编码开关测试OK陈
2013-03-26 15:11
162 查看
sbit BMA = P4^2;//编码开关A引脚1 //必须接上拉电阻680欧 sbit BMB = P4^3;//编码开关B引脚3 //必须接上拉电阻680欧 //编码开关引脚2 接地 sbit BMC = P1^6;//编码开关c 按下引脚 unsigned int counter = 0; //编码器脉冲计数 /********************************************************** 扫描编码器子函数 by陈 正转(时钟方向) 11 10 00 01 11 //开始第二角度 10 …… 反转(时钟反方向) 11 01 00 10 11 //开始第二角度 01 …… 程序从00开始 如果还是00 则等待 如果在延时这么长时间0ffff*yans(1)还是00 则返回 (如果转的速度非常快,则可使减小;相反亦然) 如果收到01 则正转加1 返回 如果收到10 则反转减1 返回 如果收到11 则错误 返回 **********************************************************/ void scan_encoder() { unsigned int i; while(1) { if(BMA==0&&BMB==0) //收到0 0 后开始判断 { for(i=0;i<0xfff0;i++) { if(BMA==0&&BMB==0) //状态未变,等待 { yans(1); } else if(BMA==0&&BMB==1) //正转 { counter++; return; } else if(BMA==1&&BMB==0) //反转 { counter--; return; } if(BMA==1&&BMB==1) //错误 { return; } } } else if(0==BMC) { counter=0; return; } else { return; } } } void xszs() { unsigned int code db[]={ 0,0,}; fsfont55(); fsszxy(4,db); printf("%5u\n",counter); txjs(); } void testmain() { yans(3000); while(1) { //tisy(); xszs(); scan_encoder(); } }
相关文章推荐
- 通过ESP8266手机或电脑浏览器网页能控制远程任意组任意路继电器开关并收发单片机指令 测试OK
- 通过ESP8266手机或电脑浏览器网页能控制远程任意组任意路继电器开关并收发单片机指令 测试OK
- c# unicode 编码 中文转换 已测试(转)
- OK6410 uart 简单测试程序
- 5 编码的 UI测试项目
- 7bit编码解码---未测试
- 【软件测试】Visual Studio中的编码的UI测试
- Qtopia 2.2.0在OK6410平台的移植(四)LED测试
- 无测试,不编码
- 编码人员和测试人员:争论的秘密
- 愚人节?测试环境OK,发布到公网跑不了?!
- centos7.2安装五笔输入法的方法(测试OK)
- utf-8编码问题之urlencode和getbytes得到的utf-8区别验证测试
- 一起谈.NET技术,VS2010 测试功能之旅:编码的UI测试(4)-通过编写测试代码的方式建立UI测试(上)
- JSP编码的一些小测试
- ffmpeg采集编码的测试文档
- 天啦噜:测试环境OK,发布到公网跑不了?!!!
- 今天测试escape 转换编码不成功!求助
- JavaScript弹出保存文件路径窗口(XP测试OK)
- Java编码测试