HW_TIMER -- 硬件定时

类型

特殊命令

描述

硬件定时器,用于硬件比较输出后一段时间后还原电平

HW_TIMER只有1个,每次调用会强制停止之前的调用。

ZMC420SCAN每个输出口的HW_TIMER功能独立。

 

振镜控制器20170709以上固件版本增加功能:

OPMOVE_OP操作会关闭正在进行的HW_TIMER脉冲,这样可以使用HW_TIMER来实现类似PWM的功能,OP输出打开脉冲输出,下一个OP输出关闭脉冲输出,当使用MOVE_OP精准输出时,可以实现精准的PWM输出无限脉冲功能。

使用?*HW_TIMER可以看到还有多少脉冲剩余。

语法

HW_TIMER(mode, cyclonetime, optime, reptimes, opstate, opnum )

done = HW_TIMER_DONE

mode0停止,2-启动

cyclonetime:周期时间,us单位

optime有效时间,us单位

reptimes:重复次数,启动模式,reptimes =0时,软关闭HW_TIMER,原来的脉冲没有完成的,会继续输出完成

opstate输出缺省状态,输出口变为非此状态后开始计时

opnum:输出口编号,必须能硬件比较输出的口

 

振镜控制器20170710以上版本增加mode 3,类似0,当前脉冲完成后不再输出,但后面的OP仍会继续触发脉冲。

适用控制器

3系列部分、4系列及以上产品,4系列固件20170704及以上

例子

以下例程测试环境:ZMC432固件:20170709仿真器无法运行此指令)。

为了直观显示波形,周期设置的较大。

 

例一:不重复输出,周期为1

RAPIDSTOP(2)

WAIT IDLE(0)

BASE(0)

ATYPE=1

UNITS=100

SPEED=100

ACCEL=500

DPOS=0

TRIGGER

OP(0, OFF)

HW_TIMER(2, 1000000, 500000, 1, OFF, 0)  '输出口0变为on后,硬件定时器触发开始计时,500ms 后切换为off

OP(0, ON)

运行效果:OP(0)保持输出500ms后关闭。

 

例二:周期调整为2,输出两次

RAPIDSTOP(2)

WAIT IDLE(0)

BASE(0)

ATYPE=1  

UNITS=100

SPEED=100

ACCEL=500

DPOS=0

TRIGGER

OP(0, OFF)

HW_TIMER(2, 1000000, 500000, 2, OFF, 0)  '输出口0变为on后,硬件定时器触发开始计时,500ms 后切换为off

OP(0, ON)

运行效果:以1000ms为周期,输出两个周期,每个周期前500ms开启,后半个周期关闭。

相关指令

HW_PSWITCH