特殊指令:高速输入捕获


Icu_Config:输入捕获配置

输入捕获配置指令用于配置输入捕获单元的工作模式。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,进行工作模式的配置。EN可以一直保持为1,指令会比较当前配置,只有在参数与当前配置不一致时,才进行配置。
PortUSINT输入输入捕获端口。
Active USINT 输入 时间戳记录启动与停止的方式:
  • [0] Active_ByPower:时间戳记录通过能流EN使能,若指令的能流EN切换为0,则停止时间戳记录。
  • [1] Active_ByCommand:时间戳记录通过能流EN使能。一旦开始记录,除非执行了Icu_StopTimestamp指令,否则时间戳记录将会一直进行。
Mode USINT 输入 输入捕获的工作模式:
  • [0] Mode_DutyCycle:输入捕获用于PWM的检测。
  • [1] Mode_Timestamp:输入捕获用于时间戳记录。
TimeUnit USINT 输入 时间单位:
  • [0] TimeUnit_100ns:基时定时器工作在10MHz频率下,时间单位为100ns。
  • [1] TimeUnit_1us:基时定时器工作在1MHz频率下,时间单位为1us。
  • [2] TimeUnit_10us:基时定时器工作在100KHz频率下,时间单位为10us。
  • [3] TimeUnit_100us:基时定时器工作在10KHz频率下,时间单位为100us。
  • [4] TimeUnit_1ms:基时定时器工作在1KHz频率下,时间单位为1ms。

Icu_GetDutyCycle:获取PWM占空比

获取PWM占空比指令用于PWM脉冲的检测。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,读取当前PWM的占空时间。
PortUSINT输入输入捕获端口。
DutyUINT输出PWM脉冲为高电平的时间。
PeriodUINT输出PWM脉冲的周期。

若一直检测不到PWM脉冲信号,检测管脚持续为高电平,则返回Duty=0/Period=65535;检测管脚持续为低电平,则返回Duty=65535/Period=65535。

Icu_StartTimestamp:开始时间戳记录

开始时间戳记录指令一旦使能,输入捕获单元将检测管脚的电平变化,将变化的时间戳写入用户提供的缓冲中。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,开始时间戳记录。若端口配置为Active_ByPower模式且EN为0时,停止时间戳记录。
PortUSINT输入输入捕获端口。
EventUSINT输入 需要记录的电平变化
  • [0] Event_RisingEdge:只记录检测管脚的上升沿。
  • [1] Event_FallingEdge:只记录检测管脚的下降沿。
  • [2] Event_RisingFallingEdges:记录检测管脚的上升和下降沿。
BufUINT输入缓冲的第一个变量。
BufSizeUINT输入缓冲的大小(字单位)。
IndxUINT输出缓冲中记录的时间戳数量。

Icu_StopTimestamp:停止时间戳记录

停止时间戳记录指令用于停止时间戳记录。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,停止时间戳记录。
PortUSINT输入输入捕获端口。