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的實現方式是一樣的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697544.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Cache框架使用教程,通過簡單且強大的方式在應用程序中使用緩存提高性能

Spring Cache Spring Cache 框架是 Spring 框架的一部分,它提供了一種簡單但功能強大的方式來在應用程序中實現緩存。下面是 Spring Cache 框架的一些好處: 性能提升: 使用緩存可以大大提高應用程序的性能,特別是對于那些需要頻繁訪問和計算的數據。通過緩存先前計算的結果…

【ARMv8M Cortex-M33 系列 8.1 -- RT-Thread 堆內存 檢查命令 free 實現及介紹】

文章目錄 RT-Thread 堆內存 檢查命令 free 實現及介紹rt_memory_info 函數驗證 RT-Thread 堆內存 檢查命令 free 實現及介紹 在RT-Thread系統中,通常可以通過rt_memory_info函數獲取當前的堆內存使用信息,然后你可以包裝這個函數來顯示剩余的堆空間。rt…

最全整理,軟件測試-Web頁面測試思路總結,13年經驗...

目錄:導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結(尾部小驚喜) 前言 1、Web功能測試 …

Vim 模式切換 | 命令集

Vim 模式切換 | 命令集 vim 主要模式及切換一、正常/普通/命令模式1 光標相關操作命令集1.1 光標移動1.2 文字刪除1.3 粘貼和復制1.4 替換1.5 字符更改 二、插入模式2.1 插入模式和命令行模式相互切換 三、末行模式2.1 末行模式和命令行模式相互切換2.2 末行模式相關命令集 vim…

【EI會議征稿通知】第十屆機械工程、材料和自動化技術國際會議(MMEAT 2024)

2024年第十屆機械工程、材料和自動化技術國際會議(MMEAT 2024) 2024 10th International Conference on Mechanical Engineering,Materials and Automation Technology 2024年第十屆機械工程、材料和自動化技術國際會議( MMEAT 2024) 將于2024年06月21-23日在中國武漢舉行。MM…

【LeetCode每日一題】單調棧316去除重復字母

題目:去除重復字母 給你一個字符串 s ,請你去除字符串中重復的字母,使得每個字母只出現一次。需保證 返回結果的字典序最小(要求不能打亂其他字符的相對位置)。 示例 1: 輸入:s “bcabc” 輸…

docker自定義網絡實現容器之間的通信

Background docker原理 docker是一個Client-Server結構的系統,Docker的守護進程運行在主機上。通過Socket從客戶端訪問。docker核心三大組件:image–鏡像、container-容器、 repository-倉庫。docker使用的cpu、內存以及系統內核等資源都是直接使用宿主…

python 函數-04-參數收集-帶1個或2個星號

一個函數,至多可以帶一個一星參數(收集位置參數),加上一個二星參數(收集關鍵字參數)。 01 一個星號參數 入參為不定參數(參數個數不確定),此時在定義參數時&#xff0c…

最簡單方式把jar打包成Windows服務

廢話 😢 將JAR文件轉化為Windows服務是一種高效且常見的Java應用部署策略。這種轉變賦予了Java應用程序在Windows操作系統上以無界面后臺服務模式運行的能力,從而實現了持續、穩定且可靠的功能提供。這種部署方式不僅提升了應用的可用性&#xff0c…

Python學習筆記——類(編程風格)

編寫的應用比較復雜時,特別是大型項目,團隊分工協同,尤其要注意編程風格。 (1)類名應采用駝峰命名法,即將類名中的每個單詞的首字母都大寫(類名的首字母是大寫的),并且不…

導入excel某些數值是0

目錄 導入excel某些數值是0數據全部都是0原因解決 部分數據是0原因解決 導入excel某些數值是0 數據全部都是0 有一列“工單本月入庫重量”全部的數據都是0 原因 展示的時候,展示的字段和內表需要展示的字段不一致,導致顯示的是0。 解決 修改展示的字…

kubernetes面試題及核心知識點

無狀態負載deployment有狀態管理 : config配置文件 secret密碼文件 內置volumn插件 1、emptyDir宿主機的存儲為容器分配資源。臨時儲存,隨著pod的刪除而消失, 2、hostPath宿主機的存儲為容器分配資源。不會隨著pod的刪除而消失&#xf…

Video generation models as world simulators-視頻生成模型作為世界模擬器

原文地址:Video generation models as world simulators 我們探索在視頻數據上進行大規模生成模型的訓練。具體來說,我們聯合訓練文本條件擴散模型,同時處理不同持續時間、分辨率和長寬比的視頻和圖像。我們利用一個在視頻和圖像潛在編碼的時…

AGI|AI到底如何生成視頻?Sora究竟為何能引爆科技圈?

目錄 一、AI生成視頻引發新浪潮 二、生成方法及難點 三、Sora的突破進展 (一)可生成不同尺寸視頻 (二)可生成1分鐘時長視頻 (三)圖片生成視頻 (四)場景一致性 (五…

Window部署Exceptionless

Exceptionless Elasticsearch 版本: Exceptionless:8.1.0 Elasticsearch:7.17.5 JDK:11.0.10 目錄 一、Elasticsearch運行 二、 Exceptionless 一、Elasticsearch運行 bin目錄下elasticsearch.bat 直接運行 訪問 http://lo…

使用gstreamer和opencv實時識別LED數碼管數字的測試demo(QT)

效果演示: 效果1:靜態識別 效果2:動態實時識別 可以看到,雖然不太穩定,但是好歹還是識別出來了的,就是需要調參,然鵝我不是專業的,目前還沒有調好。。。 T_T 先這樣吧。以后再說。 覺得文章質量可以的,請點個贊哦,謝謝。 前言 最近需要完成使用op…

yum方式快速安裝mysql

問題描述 使用yum的方式簡單安裝了一下mysql,對過程進行簡單記錄。 步驟 ①安裝wget和vim sudo yum -y install wget vim②下載mysql的rpm包 sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm③升級和更新rpm包 sudo rpm -Uv…

ElementUI組件的安裝和使用

Element UI 是一款基于 Vue 2.0 的桌面端組件庫,主要用于快速構建網站的前端部分。它提供了豐富的組件,如按鈕、輸入框、表格、標簽頁等,以及一些布局元素,如布局容器、分割線等。Element UI 的設計風格簡潔,易于上手&…

【前端素材】推薦優質后臺管理系統Airmin平臺模板(附源碼)

一、需求分析 系統定義 后臺管理系統是一種用于管理和監控網站、應用程序或系統的在線工具。它通常是通過網頁界面進行訪問和操作,用于管理網站內容、用戶權限、數據分析等。后臺管理系統是網站或應用程序的控制中心,管理員可以通過后臺系統進行各種管…

第四十二回 假李逵翦徑劫單身 黑旋風沂嶺殺四虎-python讀寫csv和json數據

李逵答應了宋江三件事:不可吃酒,獨自前行,不帶板斧。李逵痛快答應了,挎一口腰刀,提著樸刀,帶了一錠大銀子,三五個小銀子就下山去了。 宋江放心不下,于是請同鄉朱貴也回家一趟&#…