智能车制作

标题: cd4520 用的好不顺畅啊 [打印本页]

作者: tianfu    时间: 2012-5-12 13:13
标题: cd4520 用的好不顺畅啊
按照大家给的去年摄像头的电路CD4520的数字计数器接法,确实可行,能发回来数据,大体上正确,但是稍微比正常值要大一些,假如100线的转一圈是100   它返回来的值是107左右,而且清零效果不好啊,第一次进入中断清零后有时会有  0x10的数值 也就是16个计数的残留,不知道为什么是这样 ,烦死了,第二次中断清零出来才会是0,这样搞的最后的结果会有各种跳跃性的偏差,效果不好啊  呜呜呜    不知道是什么情况,不知道各位大神有没有碰到这种情况,求解,在线跪等,不甚感激。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者: 流浪花    时间: 2012-5-12 13:31
只能实现累加功能,实现不了清零效果,不知道问题在哪里,楼上兄弟给予指点,扣扣:519585238
作者: Goolloo    时间: 2012-5-12 14:23
给1,给0,
作者: tianfu    时间: 2012-5-12 17:01
Goolloo 发表于 2012-5-12 14:23
给1,给0,

道理我也懂啊   是给0再给1的,可是实验效果就在那里,
有时候就是清零不了  第二次进入中断才完成清零,实验数据也是在正常数据左右跳变,小车速度控制效果不理想,头都大了  哎。。。。。。。。。。。。

作者: tianfu    时间: 2012-5-12 17:02
流浪花 发表于 2012-5-12 13:31
只能实现累加功能,实现不了清零效果,不知道问题在哪里,楼上兄弟给予指点,扣扣:519585238

同求。。。。。。。。。。。。
作者: Goolloo    时间: 2012-5-12 17:41
tianfu 发表于 2012-5-12 17:01
道理我也懂啊   是给0再给1的,可是实验效果就在那里,
有时候就是清零不了  第二次进入中断才完成清零, ...

反了,给1再给0。
指南的原文:由表可知,若用ENABLE信号下降沿触发,触发信号由EN端输入,CLK端置“0”;若用CLCK信号上升沿触发,触发信号由CLCK端输入,ENABLE端置“1”。RESET端是清零端,RESET端置“1”时,计数器各端输出端Q1~Q4均为“0”,只有RESET端置“0”时,CD4518才开始计数。
作者: tianfu    时间: 2012-5-12 18:33
Goolloo 发表于 2012-5-12 17:41
反了,给1再给0。
指南的原文:由表可知,若用ENABLE信号下降沿触发,触发信号由EN端输入,CLK端置“0” ...

刚才说错了  是先给1再给0的啊   都设置好了  能清零也能计数,但是清零效果不好,一次清零会有ox10(16)个计数的残余,两次才能彻底清除   呜呜。。
作者: Goolloo    时间: 2012-5-12 18:49
tianfu 发表于 2012-5-12 18:33
刚才说错了  是先给1再给0的啊   都设置好了  能清零也能计数,但是清零效果不好,一次清零会有ox10(16)个 ...

你发个电路图看看吧

作者: tianfu    时间: 2012-5-12 19:39
Goolloo 发表于 2012-5-12 18:49
你发个电路图看看吧

[attach]24458[/attach]电路图就是用大家给的那个CD4520的图,啥都没改  
是自己焊的板子,没有做在PCB板子上。。。呜呜呜呜

作者: Goolloo    时间: 2012-5-12 19:45
tianfu 发表于 2012-5-12 19:39
电路图就是用大家给的那个CD4520的图,啥都没改  
是自己焊的板子,没有做在PCB板子上。。。呜呜呜呜

我也是按照这个图做的,没有问题,你最好检查一下你的电路,先用信号发生器试试,或者是单片机的pwm

作者: tianfu    时间: 2012-5-12 20:10
Goolloo 发表于 2012-5-12 19:45
我也是按照这个图做的,没有问题,你最好检查一下你的电路,先用信号发生器试试,或者是单片机的pwm

哥已经用了各种方法,黔驴技穷了。。。。
最后的可能 只能是我自己焊的板子  有哪里接触不良了。。。。。。。。。。。

作者: Goolloo    时间: 2012-5-12 20:16
tianfu 发表于 2012-5-12 20:10
哥已经用了各种方法,黔驴技穷了。。。。
最后的可能 只能是我自己焊的板子  有哪里接触不 ...

恩,很有可能,重新过一遍吧

作者: tianfu    时间: 2012-5-12 20:29
Goolloo 发表于 2012-5-12 20:16
恩,很有可能,重新过一遍吧


作者: 大左_01    时间: 2012-5-17 21:54
置1后,加几个空语句  _asm(nop);  再赋0,

作者: tianfu    时间: 2012-5-17 22:21
大左_01 发表于 2012-5-17 21:54
置1后,加几个空语句  _asm(nop);  再赋0,

最后我没用空语句了,直接等待语句
while(8个IO口数据寄存器);等于零的时候跳出,效果不错的说。。。

作者: 奔驰飞思卡尔    时间: 2012-5-18 10:21
Goolloo 发表于 2012-5-12 14:23
给1,给0,

测两路就得16个IO口?

作者: Goolloo    时间: 2012-5-18 14:30
奔驰飞思卡尔 发表于 2012-5-18 10:21
测两路就得16个IO口?

(8+1)*2=18

作者: 奔驰飞思卡尔    时间: 2012-5-18 17:55
Goolloo 发表于 2012-5-18 14:30
(8+1)*2=18

加我个口口吧1247716291 ,对于测速很着急
作者: 雨中踏雪    时间: 2012-8-13 23:45
tianfu 发表于 2012-5-12 19:39
电路图就是用大家给的那个CD4520的图,啥都没改  
是自己焊的板子,没有做在PCB板子上。。。呜呜呜呜

为什么编码器的输入哪里用上升沿触发呢,下降沿不行么。。求指教

作者: WK033857    时间: 2012-12-14 19:58
Goolloo 发表于 2012-5-12 19:45
我也是按照这个图做的,没有问题,你最好检查一下你的电路,先用信号发生器试试,或者是单片机的pwm

您好,请问您一个问题,上面的电路图的16引脚VDD没有接任何东西吗??不是应该接“正极”吗???
作者: abb200628    时间: 2013-3-11 19:15
初始化前先给1再给0,清零给1后稍作延时  asm nop   再开始计数给0,已测试通过
我QQ:879653946
很高兴很欢迎和你交流
作者: laffezhang    时间: 2013-4-10 00:01
能给个程序小弟参考一下吗?刚着手程序,很多都不懂。
作者: dapan945    时间: 2013-4-10 08:10
没遇到过。以前由于输入波形不好导致计数不准,加了一级触发器问题解决。
作者: FHFF1234    时间: 2013-4-25 23:55
tianfu 发表于 2012-5-17 22:21
最后我没用空语句了,直接等待语句
while(8个IO口数据寄存器);等于零的时候跳出,效果不错的说。。。 ...

你的问题现在解决了吗 就是清零的时候高电平持续的时间不够长芯片识别不出来吗 大神给知道啊 我在这有段时间了


作者: 聊城大学    时间: 2016-6-17 16:27
我的不接信号都会自己计数  是不是芯片的问题呢?




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2