huangxiaolpbany 发表于 2014-9-8 17:09:31

请教:脉冲过窄,IO方式无法正确读取的处理方法

使用HCTL-2016对正交脉冲进行计数,在计数器溢出的时候,HCTL2016会给出溢出信号和U/D(上/下溢出)信号。溢出信号已经接入外部中断,想要在外部中断时判断U/D的状态,确定溢出方向。
实际使用时如果是上溢出,超过65535变为0时,脉冲极短,无法使用IO方式正确读取,请问如何处理。
谢谢!

zydk14471 发表于 2014-9-8 17:33:09

你已经接入外部中断,那就在中断程序中处理啊,怎么会存在用IO方式正确读取的问题?能否表述的更详细或上代码?

yigang 发表于 2014-9-8 17:37:31

你是说,溢出脉冲太宰?

marshallemon 发表于 2014-9-8 18:06:53

使用NE555做个脉宽扩展

snowy 发表于 2014-9-8 18:32:25

施密特触发器?

alias 发表于 2014-9-8 18:58:36

>>脉冲极短,无法使用IO方式正确读取,请问如何处理。

不可以,溢出脉冲太短。

但由於 U/D 讯号在溢出脉冲出现前已经有效,所以能够使用4013锁存。把U/D 讯号接至4013的D输入,CNTcas 接至 4013 的 CLK及MCU中断,中断内使用IO方式读取4013的Q输出就可以了。

suda2008wuli 发表于 2014-9-8 19:02:58

可以测量周期呀

ground 发表于 2014-9-8 19:08:50

上升或下降沿触发中断,在中断里读口线电平.

foxcase 发表于 2014-9-8 20:21:02

领袖 是要锁存的

huangxiaolpbany 发表于 2014-9-8 20:50:32

谢谢各位的回复。6楼应该用过这个芯片吧?确实您所说的,用4013作锁存是个好方法。
也给各位说下,HCTL2016是个对双脉冲计数的芯片,内部为16位计数器,数据可以通过8bit总线分两次读取。
在计数到65535再加一个脉冲或者0再少一个脉冲的时候,发出溢出信号,此时可以通过判断U/D脚的电平确定是上溢出还是下溢出。
我也是使用溢出信号作为中断输入使用,在中断程序中读取U/D的电平,但是问题在于,U/D信号的高电平持续时间过短,造成永远读取到低电平。
6楼的方法无疑是正确的。

实际上我现在是在中断程序中读取HCTL2016的数值,小于500(可按照要求设置)为上溢出,大于65000为下溢出,在低速下没问题。

huangxiaolpbany 发表于 2014-9-8 20:51:16

snowy 发表于 2014-9-8 18:32
施密特触发器?

6楼把您的说仔细了,谢谢

huangxiaolpbany 发表于 2014-9-8 20:52:06

ground 发表于 2014-9-8 19:08
上升或下降沿触发中断,在中断里读口线电平.

高电平持续实现太短,在中断程序里面读都来不及,6楼的方法不错

define_avr 发表于 2014-9-9 08:44:45

marshallemon 发表于 2014-9-8 18:06
使用NE555做个脉宽扩展

有没有原理图?我想把舵机用的信号扩展成调速pwm,谢谢

yigang 发表于 2014-9-9 08:53:11

请使用单稳态触发器!!!

laign 发表于 2014-9-9 09:47:29

yigang 发表于 2014-9-9 08:53
请使用单稳态触发器!!!

图里面的R C值怎么确定

yigang 发表于 2014-9-9 09:56:06

本帖最后由 yigang 于 2014-9-9 09:58 编辑

TAO=RC;你希望的 溢出脉冲宽度时间。。。

主要是拖宽你的溢出脉冲后沿。。。

alias 发表于 2014-9-9 10:55:38

溢出脉冲出现後,U/D 讯号便立刻改变,所以任何拖宽溢出脉冲的建议,都没作用。

DianziABC 发表于 2014-9-9 11:16:40

huangxiaolpbany 发表于 2014-9-8 20:52
高电平持续实现太短,在中断程序里面读都来不及,6楼的方法不错

看看74HC123的资料就知道了,

wangqun 发表于 2014-9-9 11:38:08

要不就要换一个快一些的MCU

yigang 发表于 2014-9-9 12:30:42

本帖最后由 yigang 于 2014-9-9 12:32 编辑

试试这个方法,INT1,INT2分别进两个中断源,不用判断了。。。

后级RS触发器可以不要。。。

huangxiaolpbany 发表于 2014-9-9 15:09:51

yigang 发表于 2014-9-9 12:30
试试这个方法,INT1,INT2分别进两个中断源,不用判断了。。。

后级RS触发器可以不要。。。 ...

谢谢,非常感谢,这样上溢出和下溢出进不同的中断了。
真是很方便的做法。

huangxiaolpbany 发表于 2014-9-11 08:52:53

alias 发表于 2014-9-8 18:58
>>脉冲极短,无法使用IO方式正确读取,请问如何处理。

不可以,溢出脉冲太短。


您好!
问下HCTL2020会不会出现丢脉冲的问题?也就是说比如编码器出0脉冲的时候,HCTL2020计数1000,多次旋转编码器,出现上下溢出,最后上下溢出相等的时候,编码器也到0脉冲,但是计数值却不是1000了?
谢谢!

alias 发表于 2014-9-11 11:07:02

我不能回答你,我以上给你的建议都只是看了元件资料文档後作出的,我从未使用这芯片。

kevinchen026 发表于 2014-9-11 11:16:54

timer   

kevinchen026 发表于 2014-9-11 11:20:05

mark      
页: [1]
查看完整版本: 请教:脉冲过窄,IO方式无法正确读取的处理方法