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输入捕获
目录 1、概述 2、输入捕获SDK配置 2.1、SAIC中断方式 2.2、IPWM或者IPM 1、概述 输入捕获,可以抓取高电平时间、低电平时间、占空比、周期、边沿检测与回调函数、边沿计数(ABZ解码)、时间戳、唤醒中断。 记录一下根据Emios模块实现上述部分…...
左右联动布局效果
效果图: <template><el-dialog :modelValue"modelValue" :before-close"close" fullscreen :close-on-click-modal"false"><div class"farmer_detail"><div class"info_content"><di…...
【工具类】vscode ssh 远程免密登录开发
存放代码的机器运行 sshd,使用 vscode 的机器保证可以通过 ssh 登录服务器vscode 机器通过 ssh-keygen 生成 ssh 公私钥对将客户端的 id_rsa.pub 加入到服务器的鉴权队列 cat id_rsa.pub >> authorized_keysvscode 配置即可.ctrlp, remote-ssh: open ssh configuration f…...
【Antd】Form 表单获取不到 Input 的值
文章目录 今天遇到了一个奇怪的bug,Form表单中的Input组件的值,不能被Form获取,导致输入了内容,但是表单提交的时候值为undefined 报错代码 import { Button, Form, Input } from antd; import React from react;const App: Rea…...
Encoder-decoder 与Decoder-only 模型之间的使用区别
承接上文:Transformer Encoder-Decoer 结构回顾 笔者以huggingface T5 transformer 对encoder-decoder 模型进行了简单的回顾。 由于笔者最近使用decoder-only模型时发现,其使用细节和encoder-decoder有着非常大的区别;而huggingface的接口为…...
【STM32备忘录】【STM32WB系列的BLE低功耗蓝牙】一、测试广播配置搜不到信号的注意事项
一、预备知识: WB系列是双核单片机,用户写M4,无线协议栈使用M0新买到手的单片机,需要自己刷入使用的无线协议栈刷入无线协议栈的途径是通过一个叫FUS的东东,类似于bootloader,这个FUS新买的芯片通常已经刷…...
ChatGPT 是什么
文章目录 一、ChatGPT 是什么二、ChatGPT的发明者三、ChatGPT的运作方式四、ChatGPT的技术五、ChatGPT的优势六、ChatGPT的局限性七、ChatGPT的应用八、ChatGPT的未来九、总结 一、ChatGPT 是什么 OpenAI的ChatGPT,即Chat Generative Pre-Trained Transformer&…...
4款好用的ai智能写作软件,为写作排忧解难!
在当今信息爆炸的时代,写作已经成为人们生活和工作中不可或缺的一部分。然而,对于许多人来说,写作可能是一项具有挑战性的任务,需要花费大量的时间和精力。幸运的是,随着人工智能技术的不断发展,ai智能写作…...
js设计模式:计算属性模式
作用: 将对象中的某些值与其他值进行关联,根据其他值来计算该值的结果 vue中的计算属性就是很经典的例子 示例: let nowDate 2023const wjtInfo {brithDate:1995,get age(){return nowDate-this.brithDate}}console.log(wjtInfo.age,wjt年龄)nowDate 1console.log(wjtInf…...
2015-2024年考研数学(一)真题练习和解析——选择题
各个大学已经陆陆续续开学了,备考2025年考研的同学也要紧锣密鼓地开始备考,尤其是三门公共课——政治、英语、数学,备考的时间和周期都比较长,每一门都是难啃的硬骨头。 在这三门公共课中,数学的灵活性是最大的&#x…...
Git合并固定分支的某一部分至当前分支
在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先,从要合并的源分支(即要…...
Codeforces Round 928 (Div. 4) (A-E)
比赛地址 : https://codeforces.com/contest/1926 A 遍历每一个字符串,比较1和0的数量即可,那个大输出那个; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \n #define lowbit(x) (x&am…...
git远程操控gitee
配置SSH公钥 首先,在本地计算机上生成SSH公钥。打开终端或命令提示符窗口,并执行以下命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com"按照提示操作,生成SSH密钥对。默认情况下,公钥将保存在~…...
常见面试题:TCP的四次挥手和TCP的滑动窗口
说一说 TCP 的四次挥手。 挥手即终止 TCP 连接,所谓的四次挥手就是指断开一个 TCP 连接时。需要客户端和服务端总共发出四个包,已确认连接的断开在 socket 编程中,这一过程由客户端或服务端任意一方执行 close 来触发。这里我们假设由客户端…...
力扣随笔之两数之和 Ⅱ -输入有序数组(中等167)
思路:在递增数组中找出满足相加之和等于目标数 定义左右两个指针(下标)从数组两边开始遍历,若左右指针所指数字之和大于目标数,则将右指针自减,若左右指针所指数字之和小于目标数,则左指针自加&…...
最优传输(Optimal Transport)
最优传输(Optimal Transport)是一种数学理论和计算方法,用于描述两个概率分布之间的距离或者对应关系。它的核心概念是如何以最佳方式将一组资源(如质量、能量等)从一个位置传输到另一个位置。 基本概念: …...
MIT-6.824-Lab2,Raft部分笔记|Use Go
文章目录 前记Paper6:RaftLEC5、6:RaftLAB22AtaskHintlockingstructureguide设计与编码 2BtaskHint设计与编码 2CtaskHint question后记 LEC5:GO, Threads, and Raftgo threads技巧raft实验易错点debug技巧 前记 趁着研一考完期末有点点空余…...
使用openeuler 22.03替代CentOS 7.9,建立虚拟机详细步骤
进入浏览器搜索网址下载openeuler 22.03镜像文件 https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/ISO/x86_64/openEuler-22.03-LTS-SP3-x86_64-dvd.iso 打开VMware Workstation新建一个虚拟机: 自定义虚拟机位置 加入下载好的openeuler镜像文件…...
代理技术引领出海征程
在数字娱乐的繁荣时代,游戏开发者和发行商们意识到,要在全球市场立足,必须迈向国际化的出海之路。然而,这一旅程面临着跨越网络壁垒、适应多元文化和提升全球连接性的巨大挑战。本文将深入探讨代理技术在游戏行业出海过程中的创新…...
谷粒商城篇章9 ---- P248-P261/P292-P294 ---- 消息队列【分布式高级篇六】
目录 1 消息队列(Message Queue)简介 1.1 概述 1.2 消息服务中两个重要概念 1.3 消息队列主要有两种形式的目的地 1.4 JMS和AMQP对比 1.5 应用场景 1.6 Spring支持 1.7 SpringBoot自动配置 1.7 市面上的MQ产品 2 RabbitMQ 2.1 RabbitMQ简介 2.1.1 RabbitMQ简介 2…...
用Python实现编译器前端:从Kaleidoscope到LLVM IR的实践指南
1. 项目概述:从“玩具”到“宝藏”的编译器学习之旅如果你对编译原理这门计算机科学的“硬核”课程感到既敬畏又头疼,觉得那些词法分析、语法树、中间代码优化等概念如同天书,那么你很可能已经尝试过一些经典的“龙书”配套项目,比…...
别只盯着密码爆破:身份认证漏洞的3个“非主流”攻击面与防御思考
身份认证安全的隐秘战场:超越密码爆破的三大高阶攻防实践 在网络安全领域,身份认证机制如同数字世界的门锁系统。当大多数安全从业者将注意力集中在传统的密码爆破防御时,攻击者早已将目光转向那些被忽视的认证薄弱环节。本文将深入剖析三个常…...
[STM32U3] 【STM32U385RG 测评】+ PWM调节控制LED
在厂家提供的例程中,提供了多个PWM通道输出固定占空比的示例,但缺少改变占空比的介绍。为此,作了一下自动改变占空比和按键改变占空比的尝试。这采用的是以PWM通道1输出脉冲来控制外挂LED模块的亮度,通道1的输出引脚为PA0…...
慕尼黑电子展深度攻略:从技术侦察到资源对接的实战指南
1. 展会项目概述与核心价值解析又到了一年一度的行业盛会密集期,对于身处电子、嵌入式、物联网这些硬科技赛道的从业者来说,参加一场高质量的线下展会,其价值远不止是“逛一逛”那么简单。它更像是一次集中的行业体检、一次高效的技术社交和一…...
ARM SVE指令集饱和运算原理与应用解析
1. ARM SVE指令集与饱和运算概述在当代处理器架构中,向量化计算已成为提升性能的关键技术。作为ARMv8.2引入的重要扩展,SVE(Scalable Vector Extension)指令集通过创新的"向量长度无关"设计,为高性能计算和机…...
Linux实战:部署MinIO对象存储服务与Systemd开机自启配置详解
1. MinIO简介与环境准备 MinIO是一款高性能的分布式对象存储服务,完全兼容Amazon S3 API。它特别适合在私有云环境中部署,提供文件存储、备份和归档等功能。我在多个生产环境中使用过MinIO,它的轻量级设计和简单配置让我印象深刻。 首先需要准…...
Translumo:5分钟掌握Windows实时屏幕翻译神器的完整指南
Translumo:5分钟掌握Windows实时屏幕翻译神器的完整指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否…...
车间违规操作难监管?AI Box 智能视频监控系统解决方案
干工控这么多年,我最不愿意看到的就是安全事故。每次听到哪个工厂出了安全事故,心里都特别难受。其实很多安全事故都是因为违规操作引起的,比如不戴安全帽、不系安全带、在车间吸烟等等。传统的监控只能事后追溯,不能事前预警&…...
别再只用MD5了!聊聊Java中MessageDigest的SHA-256、SHA-3等算法选择与实战避坑
别再只用MD5了!Java哈希算法安全升级实战指南 哈希算法在现代应用开发中扮演着数据指纹的角色,但很多Java开发者仍然停留在MD5/SHA-1的舒适区。当数据库泄露事件频发、算力攻击成本不断降低时,选择正确的哈希算法已经不再是简单的技术选型问题…...
YOLOv8实战:构建实时跌倒预警监控系统
1. 为什么需要实时跌倒预警系统 记得去年帮朋友给独居老人安装监控摄像头时,发现一个痛点:传统监控只能事后回放,当老人跌倒时往往错过黄金救援时间。这个问题在养老院和社区医疗场景尤为突出,护工不可能24小时盯着每个监控画面。…...
