NXP实战笔记(七):S32K3xx基于RTD-SDK在S32DS上配置ICU输入捕获

2024-02-23 19:28

本文主要是介绍NXP实战笔记(七):S32K3xx基于RTD-SDK在S32DS上配置ICU输入捕获,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、概述

2、输入捕获SDK配置

2.1、SAIC中断方式

2.2、IPWM或者IPM


1、概述

        输入捕获,可以抓取高电平时间、低电平时间、占空比、周期、边沿检测与回调函数、边沿计数(ABZ解码)、时间戳、唤醒中断。

        记录一下根据Emios模块实现上述部分功能。

        适用于输入捕获功能的Emios有以下三种模式。

SAIC:信号实时输入捕获

        从上图可以看出,SAIC仅仅关联了A寄存器,假设上升沿边沿检测,只能在上升沿时候抓取一个A的值,那么使用轮询的方式实现不了任何功能,在SDK包里面,通过中断或者DMA实现记录上次的值与本次的值,进行周期或者占空比的测量。

只有在中断或者DMA的时候才会置位此标志位

2、输入捕获SDK配置

2.1、SAIC中断方式

        目的:捕获通道eMios0_23 引脚PTC13 边沿检测 “eMios0_23使用内部计数器方式,所以Emios_Icu模块无需再配置”

        Emios_Icu配置如下

1、通道功能配置

2、通道属性配置

        在使用中断的情况下,SAIC、IPWM、IPM都好使,功能属于全支持了。但是假设使用轮询,IPM仅仅测量周期,IPWM仅仅测量占空比,SAIC用于边沿计数,其他功能FAE说支持就要中断了。周期与占空比同时测量出来是不支持的了。

中断配置,在ICU的中断里面配置之后无需再次在中断容器里面实现配置了。

测试代码

初始化

 /* Initialize Emios0 */Emios_Mcl_Ip_Init(0U, &Emios_Mcl_Ip_0_Config_BOARD_INITPERIPHERALS);
Emios_Icu_Ip_Init(0U, &eMios_Icu_Ip_0_Config_PB);Emios_Icu_Ip_EnableEdgeDetection(0,23);
/*中断初始化*/IntCtrl_Ip_SetPriority(EMIOS0_0_IRQn,2);IntCtrl_Ip_InstallHandler(EMIOS0_0_IRQn, &eMios0_23_EncoderC_Pulse, NULL_PTR);IntCtrl_Ip_EnableIrq(EMIOS0_0_IRQn);Emios_Icu_Ip_EnableInterrupt(0, 23);
/*中断执行*/
volatile uint32 eMios0_23_EncoderC_Pulsex = 0;
static void eMios0_23_EncoderC_Pulse(void)
{
Emios_Icu_Ip_IrqHandler(0, 23);
eMios0_23_EncoderC_Pulsex++;
}

测试结果,上升沿进中断,那么记录上升沿个数,发现可以完全对的上

2.2、IPWM或者IPM

目的:PTD10连接Emios1_10进行周期或脉冲宽度测量,轮询方式

IPWM:输入脉冲宽度测量,可以是高电平也可以是低电平

        从上述两图中可以看出,IPWM与IPM均可以获取A与B的值,通过相减的方式实现了周期或者脉冲宽度测量。

Emios_Icu配置,作为Count bus使用

ICU配置如下

代码实现

 /* Initialize Emios1 */
Emios_Mcl_Ip_Init(1U, &Emios_Mcl_Ip_1_Config_BOARD_INITPERIPHERALS);
Emios_Icu_Ip_StartSignalMeasurement(1,10);
/*执行代码*/
uint16 eMios1_10_EncoderA_Preiod(void)
{uint16 EncoderA_UCA         = IP_EMIOS_1->CH.UC[10].A;uint16 EncoderA_UCB         = IP_EMIOS_1->CH.UC[10].B;uint16 EncoderA_UCAReyurn   = 0;if(EncoderA_UCA >= EncoderA_UCB){EncoderA_UCAReyurn = (EncoderA_UCA - EncoderA_UCB);}else{EncoderA_UCAReyurn = (EncoderA_UCA - EncoderA_UCB + 0xFFFF);}EncoderA_UCAReyurn = (uint16)(50000/EncoderA_UCAReyurn) + 1;return EncoderA_UCAReyurn;
}

测试结果

IPWM的实现方式是一样的。

这篇关于NXP实战笔记(七):S32K3xx基于RTD-SDK在S32DS上配置ICU输入捕获的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739678

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必