EB配置MCAL全模块讲解【Autosar———7 Icu模块详解】

本文详细介绍了如何在EB工程中使用Icu模块捕获PWM波形的占空比,包括配置PWM输入、中断设置、通道配置以及编写相关代码。重点在于Icu通道的选择、频率限制和数据获取过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Icu模块通常用于捕获PWM波形,得到占空比来计算一些物理量。

2.在EB中创建新工程,添加以下模块

 

 捕获配置只需要以上模块,如果没有PWM输入源,建议配置一路PWM输出来验证Icu捕获的正确性。

3.在Port模块添加需要实现Icu功能的引脚,注意命名和添加UnTouchedPortPin。

 

4.在中断模块添加选定引脚的中断配置(采用的中断捕获的方式)

 

Emios的中断对应图如下

 

5.在Icu模块里具体配置对应引脚及功能

首先在General界面开启SAIC和采集功能,并关闭Wakeup相关的功能(3处)

 使能对应Emios通道的中断

 

在IcueMios界面创建通道 (分频看主时钟频率和采集的PWM的频率来定,由于ICU采集周期默认最大65535,假定需采集的PWM频率为1khz,那么65535*1k=65Mhz,所以ICU的主要频率不能超过这个值,对应这个值去分频就行。选内部Bus,有的通道不支持内部就去MCL里面配置外部Bus)

 

 在IcuChannel界面添加一路采集通道(注意名字的配置,这个名字就是最终代码中用到的)

 

 6.注意全部模块的Pre预编译。

附上部分代码:

Icu_DutyCycleType DutyCycleValues_text;      //定义结构体,可存放采集的占空比

     Icu_StartSignalMeasurement(IcuChannel_0);                    //开启读PWM占空比

do {

    Icu_GetDutyCycleValues(IcuChannel_0, &DutyCycleValues_text);            //先读取占空比

} while(DutyCycleValues_text.PeriodTime == 0);

采集到后就可以在现场表达式中看定义的结构体里面是否有值

计算占空比为 ActiveTime/PeriodTime。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值