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

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。

 

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在S32K144芯片中,使用MCAL(Microcontroller Abstraction Layer)模块需要进行以下步骤: 1. 在MCUXpresso IDE中创建一个新的S32K144工程,并选择MCUXpresso SDK为工程模板。 2. 在工程配置中,选择需要使用的MCAL模块,例如GPIO、UART等,并根据具体需求进行相应的配置。 3. 在代码中包含相应的MCAL库文件,并调用相应的MCAL函数来实现对硬件资源的访问和控制。 以下是示例代码: ``` #include "fsl_gpio.h" #include "fsl_uart.h" int main(void) { gpio_pin_config_t led_config = { kGPIO_DigitalOutput, 0, }; uart_config_t uart_config; uint8_t buffer[20] = {0}; uint32_t i; // Initialize LED GPIO_PinInit(GPIO, 0U, 19U, &led_config); GPIO_PinWrite(GPIO, 0U, 19U, 1); // Initialize UART UART_GetDefaultConfig(&uart_config); uart_config.baudRate_Bps = 115200U; UART_Init(UART0, &uart_config, CLOCK_GetFreq(kCLOCK_CoreSysClk)); UART_WriteBlocking(UART0, "MCAL example\r\n", 15); // Toggle LED and send UART message while (1) { GPIO_TogglePinsOutput(GPIO, 0U, 1U << 19U); for (i = 0; i < 1000000U; i++) { __asm("NOP"); } UART_WriteBlocking(UART0, "LED toggled\r\n", 13); } } ``` 在代码中,先通过GPIO_PinInit函数初始化GPIO引脚为输出模式,然后通过GPIO_PinWrite函数控制LED的亮灭。同时,通过UART_GetDefaultConfig和UART_Init函数初始化UART模块,并通过UART_WriteBlocking函数发送消息。最后,通过GPIO_TogglePinsOutput函数实现LED的闪烁效果。 需要注意的是,在使用MCAL模块时需要仔细阅读相应的文档,并根据具体需求进行相应的配置和调试。同时,也需要注意硬件资源的安性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值