huangxiaolpbany 发表于 2014-9-9 15:17:47

请教,TC1输出脉冲变双脉冲和AB相

现状及要求:
1、TC1输出脉冲,最大25K,此脉冲记为A
2、需要得到A的反相脉冲(A-),使用74LS04进行反相
3、使用一个中断输入,将TC1的输出脉冲也接到此中断输入脚上
4、中断一旦收到上升沿脉冲,开自己的下降沿中断使能,延时10us,将一个端口如PA0翻转,记为B
5、中断一旦收到下降沿脉冲,开自己的上升沿中断使能,延时10us,将一个端口如PA0翻转,记为B
6、需要得到B的反相脉冲(B-),使用74LS04进行反相

这样最终将A/A-/B/B-接入计数电路,当成是不正规的正交脉冲使用,是否存在问题?我只需要让下级设备知道速度,而不需要知道方向,所以B永远滞后A

huangxiaolpbany 发表于 2014-9-9 15:37:10

我想正确的做法应该是,
1、开启TC1的匹配中断A(OCR1A赋值)
2、在TCNT1计数到约OCR1A的一半时,OCR1B赋值
3、此时OCR1B输出的相位与OCR1B相差90度
4、再用反相器对两个引脚输出的脉冲进行反相

有两个问题:
1、怎样知道TCNT1达到了OCR1A的一半?还是计算好时间给计时器(如T2)赋值,时间一到,给OCR1B赋值?
2、使用74LS04的反相器,最大传输时间为15ns,可能造成A和A-变化时间不同步,使用SN75175(差分变单端)是否会信号出错?


修改原因:打错字

huangxiaolpbany 发表于 2014-9-9 20:32:58

又想到一种方法:
1、TC1使用匹配中断A,即给OCR1A赋值,匹配中断连接至OC1A引脚
2、TC1使用匹配中断A,给OCR1B赋值为OCR1A的一半,但是此时不语OC1B引脚相连
3、产生OC1B中断时,重新给OC1B赋值,此时赋值与0CR1A相同,而且设置为与0C1B引脚相连

问题在于:在给OCR1A赋值时是否会造成脉冲输出脉冲丢失,即在原本应输出脉冲时,此时对OCR1A赋值,造成脉冲丢失?理论上输出脉冲越低丢失的几率越小,但事实上不知道究竟会怎样
页: [1]
查看完整版本: 请教,TC1输出脉冲变双脉冲和AB相