NXP MCU 技术william hill官网
直播中

李伟

7年用户 1521经验值
私信 关注
[问答]

怎样才能实现s32k多通道频率的读取?

1st 我尝试通过创建自己的示例,如示例所示,我可以读取单个频道的频率
参考下面的代码
我的输入频率是 500 赫兹,我可以在这个单通道中读取 500 赫兹,但是当我配置为多通道时,我收到错误信息,请在页面下方

uint32_t 频率;
void clock_pins_init ( void )
{
       /* 初始化时钟模块 */
       CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT, g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
       CLOCK_SYS_UpdateConfiguration(0U,CLOCK_MANAGER_POLICY_AGREEMENT);

       /* 初始化引脚 */
       PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);

       ic_pal();
}
void ic_pal (无效)
{
       IC_Init(&ic_pal_1_instanceConfig, &ic_pal_1_InitConfig);
       频率 = FTM_DRV_GetFrequency(ic_pal_1_instanceConfig.instIdx);


}
诠释 主要无效
{
       /* 在这里写你的代码 */
       clock_pins_init();
       对于(;;)
       {

             /* 获取最新值 */
             inputCaptureMeas = IC_GetMeasurement(&ic_pal_1_instanceConfig, 0);
             /* 使用记录的数据计算信号频率 */
             inputCaptureMeas = 频率 / (inputCaptureMeas);

       }
}

/* 结束主要 */
/*!
** @}
*/




@抢





获得单通道输出后,我配置了第二个通道,但出现以下错误

  • 测量两个连续上升沿之间的周期
  • 测量两个连续下降沿之间的周期
我尝试了这两个选项,所以我现在收到以下错误
错误是奇数通道不支持奇数通道


在我得到这个之后,我跳过了只读取具有以下配置的通道我仍然无法读取第二个通道频率






包括“sdk_project_config.h”
易失性uint16_t inputCaptureMeas = 0,inputCaptureMeas1 = 0U,inputCaptureMeas2 = 0U;
uint32_t 频率;
void clock_pins_init ( void )
{
       /* 初始化时钟模块 */
       CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT, g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
       CLOCK_SYS_UpdateConfiguration(0U,CLOCK_MANAGER_POLICY_AGREEMENT);

       /* 初始化引脚 */
       PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);

       ic_pal();
}
void ic_pal (无效)
{
       IC_Init(&ic_pal_1_instanceConfig, &ic_pal_1_InitConfig);
       频率 = FTM_DRV_GetFrequency(ic_pal_1_instanceConfig.instIdx);


}
诠释 主要无效
{
       /* 在这里写你的代码 */
       clock_pins_init();
       对于(;;)
       {

             /* 获取最新值 */
             inputCaptureMeas = IC_GetMeasurement(&ic_pal_1_instanceConfig, 0);
             /* 使用记录的数据计算信号频率 */
             inputCaptureMeas = 频率 / (inputCaptureMeas);
             inputCaptureMeas1 = IC_GetMeasurement(&ic_pal_1_instanceConfig, 2);
             /* 使用记录的数据计算信号频率 */
             inputCaptureMeas1 = 频率 / (inputCaptureMeas1);

       }
}

/* 结束主要 */
/*!
** @}
*/


我没有得到任何 channel2 输出




                                                   

我能得到更多的提示吗我怎样才能实现多通道频率的读取


回帖(1)

周必镜

2024-5-31 17:39:45
在多通道频率读取中,需要配置ADC模块的多个通道,并且要确保所有的通道都被正常连接和开启。以下是可能导致错误的一些常见问题:

1. ADC模块的初始化:首先,确保正确初始化了ADC模块,并设置了所需的采样率和分辨率等参数。

2. 通道的配置:对于每个要使用的通道,需要设置其相应的引脚和输入参数,例如增益和参考电压等。这些参数也应该与读取单个通道时的设置相同。

3. DMA支持:如果使用DMA进行数据传输,则需要确保DMA能够正确地管理多个通道,包括通道间的数据缓冲区。

4. 中断处理:针对多通道频率的读取,需要正确设置ADC中断处理程序,并确保在每次采样完毕后可以正确地处理多个通道的数据。

如果通过以上步骤仍然无法实现多通道频率的读取,请检查是否对ADC硬件和软件模块进行了充分的测试和调试,并查阅相关资料和文档以获取更多的支持和建议。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分