### HW_TIMER -- 硬件定时

类型 | 特殊命令
描述 | 硬件定时器，用于硬件比较输出后一段时间后还原电平。 HW_TIMER 只有 1 个，每次调用会强制停止之前的调用。 ZMC420SCAN 每个输出口的 HW_TIMER 功能独立。 振镜控制器 20170709 以上固件版本增加功能： OP 和 MOVE_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 mode：0 停止，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