2252941_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2252941_zh-CN

2252941_zh-CN

S32K 输入捕获

嗨,团队、

我们使用的是 S32K146 微控制器,我们需要任何一个输入引脚作为输入捕获引脚,你能建议我应该使用哪个模块配置吗?

如果我使用 FTM 作为信号测量,我能否实现输入捕获功能?或者我应该使用 ic_pal 功能?

请支持

谢谢
Shruthi C

Re: S32K Input Capture

你好,彼得、

我无法使用 INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn,PWM_InputCapture_IRQHandler,NULL);函数,因为它使用默认处理程序,而不使用FTM0_Ch0_Ch1_IRQn处理程序。


我的配置是



/* flexTimer_ic_1 InitConfig 的全局配置 */
ftm_user_config_t flexTimer_ic_1_InitConfig =
{
    {
true,/* 软件触发信号状态 */
false,/* 硬件触发信号 1 状态 */
false,/* 硬件触发信号 2 状态 */
false,/* 硬件触发信号 3 状态 */
虚假,/* 最大加载点状态 */
虚假,/* 最小装载点状态 */
ftm_system_clock、/* INVCTRL 寄存器的更新模式 */
ftm_system_clock、/* SWOCTRL 寄存器的更新模式 */
ftm_system_clock、/* OUTMASK 寄存器的更新模式 */
ftm_system_clock、/* CNTIN 寄存器的更新模式 */
false,/* 自动清除触发信号 */
ftm_update_now、/* 同步点 */
},
ftm_mode_input_capture、/* FTM 的运行模式 */
ftm_clock_divid_by_1、/* FTM 时钟预分频器 */
ftm_clock_source_systemclk、 /* FTM 时钟源 */
ftm_bdm_mode_11、/* FTM 调试模式 */
虚假, /* 中断状态 */
false /* 初始化触发信号 */
};

/* FlexTimer_IC_1 的输入捕获配置 */
ftm_input_param_t flexTimer_ic_1_InputCaptureConfig =
{
1U,/* 通道配置数量 */
65535U,/* 最大计数值 */
flexTimer_ic_1_InputCaptureChannelConfig/* 通道配置*/
};

/* FlexTimer_IC_1 输入捕获的信道配置结构 */
ftm_input_ch_param_t flexTimer_ic_1_InputCaptureChannelConfig[1] =
{
    {
0U,/* 通道 ID */
FTM_SIGNAL_MEASUREMENT,/* 输入捕获操作模式 */
ftm_rising_edge、/* 边缘对齐模式 */
ftm_falling_edge_period_measurement、/* 信号测量操作类型 */
0U,/* 过滤器值 */
虚假,/* 过滤器状态(启用/禁用) */
true,/* 连续测量状态 */
NULL,/* 通道事件的回调参数向量 */
NULL/* 通道事件的回调向量 */
   }
};


Re: S32K Input Capture

您好,

是的,这些功能应该足够了。SDK 驱动程序启用了 FTM 通道中断,我认为正确的处理程序应从启动时分配。如果不是正确的处理程序,则为 FTM0_Ch0_Ch1_IRQHandler。

调用 ftm_drv_getInputCaptureMeasuremeasum 以获取捕获的值。

BR, Petr

Re: S32K Input Capture
你好,彼得、
 
感谢您的明确说明。
 
我可以使用这些函数将 FTM 引脚初始化为输入捕获
`ftm_drv_init () ``ftm_drv_init_initCapture () `ftm_drv_initInputCapture ()`

 
并安装一个 IRQ 处理器来捕获脉冲发生情况
`INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, PWM_InputCapture_IRQHandler, NULL)`
 
 
请支持
 
谢谢
Shruthi C
Re: S32K Input Capture

您好,

最常见和最有效的方法是在输入捕获模式下配置 FTM 并使用具有 FTM 功能的引脚。每个 FTM 通道均可配置为输入捕获模式,在该模式下,它捕获输入信号边缘(上升、下降或两者兼有)上的计时器值。这通常用于测量:信号周期、脉冲宽度、频率。

IC PAL 驱动器允许检测输入信号并测量通道输入信号的脉冲宽度或周期。其设计目的是使其可移植到支持 FTM、eMIOS、FLEXPWM 和 ETIMER 的所有平台和 IP 上。

因此,如果您想获得全面的控制和性能,请直接使用 FTM。如果您希望代码更简单、更便于携带,请使用 IC PAL。

BR, Petr


Re: S32K Input Capture

您好,

您可以直接参考 SDK 示例 (ftm_signal_measurement)。
或共享显示该问题的简化项目。

BR, Petr

Re: S32K Input Capture

您好,

在 SDK 示例中,我直接提到(ftm_signal_measurement)。
在这个例子中,他们没有使用中断方法,他们使用了轮询方法,然后他们调用了 ftm_drv_g
etInputCap t ureMeasuremeasum


我正在寻找带中断功能的 FTM 信号测量,一旦输入捕获识别出信号,我需要中断才能触发并调用 ISR 中的 ftm_dr v_getInputCaptureMeasuremeasurem ensum 函数


请提供相关代码


谢谢
Shruthi C

Re: S32K Input Capture

您好,

如果您需要再次安装处理程序,您应该有

extern void FTM0_Ch0_Ch1_IRQHandler(void);

INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, FTM0_Ch0_Ch1_IRQHandler, NULL);

BR, Petr

Re: S32K Input Capture

你好,

是的,我确实定义了该函数,但函数调用后会进入无限循环,并继续运行

Shruthi_C_0-1764752920959.png

整个系统将无法运行,

谢谢

Shruthi C


Re: S32K Input Capture

你好、

感谢您的支持和代码片段,我将进行检查


T&R、

Shruthi C

Re: S32K Input Capture

你好,我

能否获得任何支持中断的 FTM 引脚的输入作为输入捕获



谢谢!

Shruthi C

Re: S32K Input Capture

您好,

驱动程序使用中断来捕获事件,只是没有直接显示在示例中。
我修改了 FTM IC 设置,使其使用单发模式,并添加了从驱动程序中断调用的回调。

PetrS_0-1764845224420.png

ftm_signal_measurement_s32k146 演示修改后的 main.c 参见附件。

BR, Petr

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎12-05-2025 02:25 AM
更新者: