大家好,我是微控小智,今天又跟大家见面了。学习需要坚持,做技术亦是如此,厚积才能博发。小智写的程序都是进行反复测试过的,可以放心跟着操作,有疑问的地方可以留言。
上一期已经知道高速计数器工作在中断方式下,不经过扫描周期,对频率较高的输入信号需采用高速计数器来计数,今天继续来总结高速计数器的编程步骤。
高速计数器的编程步骤
高速计数器编程需完成以下基本操作:
设置高速计数器控制字节
设置高速计数器初始值
设置高速计数器预设值
连接高速计数器和工作模式
激活高速计数器
有上面高速计数器编程步骤可知,要正确使用高速计数器,除用好高速计数器指令外,还要正确设置高速计数器的控制字节及初始值与预置值。
高速计数器的控制字节、初始值、预置值和当前值如下图:
高速计数器的工作模式
高速计数器有12种不同的工作模式(0-11)分为4类:
(1)带内部方向控制的单相增/减计数器
(2)带外部方向控制的单相增/减计数器
(3)带增减计数输入的双向计数器
(4)A/B相正交计数器
下面以HSC0和工作模式0为例,设置高速计数器的控制字节、初始值和预置值如下图:
高速计数器的0号1号2号工作模式是在第一大类带内部方向控制的单相增/减计数器当中,没有外部方向控制端,方向由控制字节的3号和4号位控制,称为内部方向。高速计数器主要目的是用来计脉冲数量,初始值和预置值可以设置为零。HSC0输入没有启动端输入点,不支持2号模式,HSC1和HSC2有四个输入点,支持所有模式,可用HSC1和HSC2来测试2号工作模式。模式选择如下图:
带内部方向控制的单相增/减计数器编程如下图所示:
其他三大类高速计数器的工作模式编程步骤同上,只需要更换高速计数器编号和工作模式以及对应特殊存储区地址即可,其中第四大类A/B相正交计数器模式也称为编码器AB相模式,它有两个计数输入端A相和B相,A/B相正交计数器利用两个输入脉冲的相位确定计数方向。A相脉冲上升沿超前于B相脉冲上升沿时为增计数,反之则为减计数;计数还有4倍频和1倍频之分,默认是4倍频方式计数,倍频选择由控制字节的2号位控制,AB相脉冲图示如下:
实践出真知,没有实践,理论就是纸上谈兵;学习中需要多加验证。如果大家觉得小智的文章写得不错,很适合大家的口味,可以分享更多的朋友。
纸上得来终觉浅,绝知此事要躬行
宝剑锋从磨砺出,梅花香自苦寒来
关注智微自控
领取专属 10元无门槛券
私享最新 技术干货