ICU 这个采矿循环溢出功能,是否有一个例程,是否需要在初始化时启用什么?我添加了这个函数,但没有输入溢出时的回调函数。溢出模式是由另一个引脚提供的持续高电平,该引脚通过跳线与 icu 的检测引脚相连。
看来你忘记启用在 Emios_Mcl_Ip 中选择的 Emios 主总线 频道的中断功能了。
你好@Neo1096
很抱歉造成您的误解,谢谢您澄清了您的需求。
如果我的理解正确,你想测量高脉冲或低脉冲的时间,因此你可以将 ICU 模式配置为 " 信号测量 " 并将 " icuSignalMeasurementProperty " 设置为 " ICU HIGH TIME " 或 " ICU LOW TIME ",如下图所示:
RomanVR_2-1735320858785.png
如果对您有帮助,请告诉我。
- RomanVR.
我需要知道脉冲周期时间,而不是边缘变化触发的时间。如何知道边缘检测的脉冲周期有多长?
我需要在测量周期的模式下运行,并需要知道在测量一个完整周期时计数器溢出多少次,而不是防止溢出。
是 S32K312 没有这项通用功能,还是 S32 系列芯片不支持这项功能?如果没有,请告诉我,而不是以某种奇怪的方式实现我需要的功能,谢谢。
你好@Neo1096
要测量编码器的周期,可以将 ICU 模式设置为 "边缘检测",以便检测编码器信号的任何边缘,而不必担心定时器是否出现溢出,因为该功能允许在检测到边缘时配置通知,调用用户函数进行必要的处理。
您可以使用热电阻上提供的示例"Emios_Icu_Ip_BlinkLed_S32K344" 测试该功能,看看是否与您的应用相匹配。
如果您有更多疑问,请告诉我。
- RomanVR.
现在我想测量增量编码器的周期,因为在低速下,检查编码器脉冲的数量不适用,所以我想计算这个周期值
但这个周期值似乎最大只能取 16 位,周期稍长就只能用溢出方式计算周期了吗?如果是溢出,而不能使用 lcuOverflowNotification,该怎么办?
还是有计算编码器脉冲周期的例程或方法?以脉冲周期时间较长的情况为例。
AN13767 本文档还仅提供在需要低速计算周期时计算脉冲数量的方法?
谢谢!
你好@Neo1096
从所附图片可以推断,您使用的 ICU 模式设置为"信号测量" 。但是,在此模式下启用 " ICUoverflowNotification " 时,只有在测量完成后才会触发信号通知。由于您正在引入连续的高电平信号,因此此通知不会触发信号,因为您的 ICU 配置为在上升沿进行测量。
有关 ICU 驱动程序和 Icu 溢出通知使用的更多详情,请参阅《ICU 用户手册》第 4.99 节(参数 IcuOverflowNotificationApi)。您可以在计算机上的以下位置找到该手册:
C:\NXP\S32DS.3.5\S32DS\software\PlatformSDK_S32K3\RTD\Icu_TS_T40D34M50I0R0\doc
如果您有更多疑问,请告诉我。
- RomanVR.