赞
踩
本文将详细介绍如何使用 EB 工具配置 Flagchip FC4150 MCAL 按键(Key1) 中断控制 LED。并重点强调了配置 icu 模块的过程以及对 icu 模块的详细解释。其中所使用到的模块有 mcu、port、dio、icu ,本文是基于“Flagchip FC4150 MCAL-点亮 LED 灯”这篇博文中增加 ICU 的内容, mcu、port、dio 模块可参考上一篇博文。
硬件平台:旗芯微 FC4150 DEMO BOARD V2 开发板
软件平台:EB tresos 28.1.0 、Flagchip_FC_IDE 4.04
MCAL: V1.1.0 & V1.1.1
1.1 配置 MCU 模块
根据 demo board LED原理图所示,我们需要在 MCU 模块-> PCC 下添加 Port B 、C、D 的外设并配置为时钟使能
▲ 图 1.1.1
▲ 图 1.1.2
▲ 图 1.1.3
1.2 配置 PORT 模块
进入 Port C 的 PortPin 界面下,添加 PTC28 引脚并命名为 KEY1,配置 PTC28 为 GPIO 、输入模式,默认电平为高。LED port 配置已在上一篇博文中配置完成。
▲ 图 1.2
1.3 配置 ICU 模块
1.3.1 在 Module Configurations 中添加 ICU 模块,在 ICU 模块中的 IcuPort 下添加 Port_C。
▲ 图 1.3.1
1.3.2 在 ICU 模块中的 IcuChannel 下添加通道。
▲ 图 1.3.2
1.3.3 双击 Index 3 进入 IcuChannel 的配置界面,选择 Icu Hardware Module 为 PORT_C,Channel Of Hardware Module 修改为 28 ,选择边沿检测方式为下降沿,检测方式为信号边沿检测,填入边沿检测名字和回调函数名字
▲ 图 1.3.3
2.1 将 EB 配置好的工程编译并更新代码至 FCIDE 中
2.2 Main 函数
将 Bsp_Icu_Init 函数取消屏蔽
▲ 图 2.2
2.3 Icu_PBcfg.c
我们可以看到 PORTC-28 在 EB 工具配置好的属性与回调函数的声明
▲ 图 2.3
2.4 Bsp_Icu.c
2.4.1 demo 示例中已经提供了 Icu_Key1_Edge_Detect 函数实体,我们需要添加 Dio_FlipChannel 函数使 LED 灯翻转
▲ 图 2.4.1
2.4.2 找到 Bsp_Icu_Init 这是 demo 示例对 MCAL API 的调用
▲ 图 2.4.2
3.1 将工程编译并烧录到开发板
观察 3 颗 LED ,初始化时灯为亮,当按键按下时灯熄灭,再次按下灯点亮。
▲ 图 3.1
FC4150 ICU 模块提供边沿计数、信号边沿检测通知、周期性信号时间测量、边沿时间戳捕获、中断唤醒等功能
4.1 General 配置
▲ 图 4.1
① IcuConfigSet
② IcuGeneral
③ IcuNonAUTOSAR
④ IcuOptionalApis
根据功能需要,配置某个 API 使能,如 IcuDeInitApi 取消初始化 ICU 模块、Icu(Disable/Enable) WakeupApi 禁用或启用某个 ICU 通道的唤醒源、IcuSetModeApi 设置ICU(正常/睡眠)模式等。
4.2 IcuChannel 配置
添加对应 ICU 的通道来配置测量模式
▲ 图 4.2
① IcuSignalEdgeDetection
当选择信号边沿触发时,需要在 IcuSignalNotification 填入回调函数名称
② IcuSignalMeasurement
当选择信号测量时,需要在 IcuSignalMeasurementProperty 填入测量类型,此类型不能在运行时更改
③IcuTimestampMeasurement
当时间戳测量时,在 IcuTimestampMeasurementProperty 选择环形队列或有限缓冲区,有限缓冲区将只被填充一次。且可以在 IcuTimestampNotification 中填入回调函数名称,当时间戳通知>0 时会进行回调函数的使用
④ IcuWakeup
当 IcuWakeupCapability 启用,且 IcuChannelWakeupInfo 启用后,则会将唤醒源信号传递给 ECU 抽象层
4.3 IcuFtu配置
▲ 图 4.3
4.4 IcuPort 配置
可以添加 Port A、B、C、D、E 这些端口用于引脚中断。
▲ 图 4.4
4.5 IcuAontmr 配置
做定时唤醒使用
▲ 图 4.5
4.6 PublishedInformation ICU 模块版本信息
4.7 ICU 模块常用接口函数
本文以按键中断控制 LED 为示例,详细介绍了如何配置和使用 ICU(Interrupt Control Unit)模块,通过本文的讲解,读者可以了解到如何正确配置 ICU 模块,以实现 Port 中断的功能。
(1) AUTOSAR_SWS_IcuDriver.pdf
(2) FC4150 Reference Manual V3.0.pdf
如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com 作者:Memory
更多资讯,请扫码关注我们!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。