DWIN OS:利用定时扫描输出驱动电子膨胀阀门

定时扫描输出实现了指定IO 按照实现设置的数据,周期性的同步输出,方便PWM 调节、电机驱动等应用。电子膨胀阀采用两相4 线8 拍方式驱动时,驱动时序(1 表示导通,0 表示断开)如下表:

  A B C D
1 1 0 0 0
2 1 1 0 0
3 0 1 0 0
4 0 1 1 0
5 0 0 1 0
6 0 0 1 1
7 0 0 0 1
8 1 0 0 1

假设每拍脉冲宽度为5mS,A-D4 线接IO3-IO0,使用第1 如定时扫描驱动时流程如下:
(1)假设把8 拍正转数据保存在第1 页寄存器的0x10-0x1F,先配置字寄存器值:
R16=0x0008 R18=0x000C R20=0x0004 R22=0x0006 R24=0x0002 R26=0x0003 R28=0x0001 R30=0x0009 。
(2)配置接口集成器DR50-DR59

50 10 R/W 第1 路IO0-IO15 定时扫描输出配置,每个配置10 个字节:
D9(DR50):0x5A=扫描输出使用,其它为不使用。0x5A 开启。
D8:输出数据的寄存器页面,0x00-0x07。0x01 第1 页。
D7:输出数据的起始地址,0x00-0xFF。 0x10 从R16 开始。
D6:输出数据的字长度,0x01-0x80,每个数据2 个Byte 对应IO15-IO0。0x08。
D5-D4:IO15-IO0 输出通道选择,需要输出的通道,相应bit 设置为1。0x000F。
D3-D2:单步输出间隔T,单位为(T+1)*10uS。 0x01F3 对应5mS。
D1-D0:输出周期计数设定,每完成1 个周期输出后减1,减到0 后输出为0。0x000。

(3)根据开度需要设置DR58:DR59 寄存器值输出指定的周期数。
比如输出3 个周期,那么DR58=0x00 DR59=0x03,则自动输出3 个周期后输出停止。
类似的,把反转的数据保存在另外的寄存器,然后修改DR51、DR52 值也可以实现正、反转的切换。
注意,指定的输出IO 必须在初始化时配置为输出模式。

你可能感兴趣的:(迪文)