Autosar MCAL-GPT配置及使用

前言

GPT属于MCAL中比较常用且不是很复杂的模块。它初始化和控制微控制器内部的通用定时器(GPT)。Internal General Purpose Timer(s) 。一般用它作为定时器来触发指定的功能。对于Tc27x来说,一般会关联到GTM中的ATOM或TOM通道

GPT

GptChannelConfigSet

配置GPT通道

GptChannelId


一般配置通道会自动生成Id号

cfg配置:

GptChannelMode


GPT_CH_MODE_CONTINUOUS:到达目标时间后,计时器再次以值“0”继续运行

GPT_CH_MODE_ONESHOT:到达目标时间后,定时器自动停止(定时器过期)。

下面两张图很好的说明了两种模式的运行机制:


单次模式时调用Gpt_StartTimer后,到达目标时间时会保持,除非再次调用Gpt_StartTimer


连续模式时调用Gpt_StartTimer后会重复运行,除非调用Gpt_StopTimer


cfg配置:

GptChannelTickFrequency

定时器通道的滴答频率,单位为Hz。此处Tc27x不支持,因为频率在GTM模块中已经设定好了




cfg配置:

GptChannelTickValueMax

以tick为单位的最大值,计时器通道能够计数。随着下一次tick,计时器转到零。此处Tc27x不支持,因为频率在GTM模块中已经设定好了




cfg配置:

GptEnableWakeup

使能通道的唤醒功能。没有用过这个功能


cfg配置:

GptNotification

指向回调函数的函数指针(用于非唤醒通知)


在调用Gpt_StartTimer后到达对应时间,会触发该回调函数。在回调函数中可以继续调用Gpt_StartTimer以继续定时触发




cfg配置:

GptChannelClkSrcRef

配置关联的时钟


cfg配置:

GptAssignedHwUnit

配置关联的硬件通道


cfg配置:

需要确保配置的通道没有被占用,此处我们还使用了中断功能,需要配置对应的回调函数及OS中配置中断源

GptConfigurationOfOptApiServices

配置API函数

GptDeinitApi


使能Gpt_DeInit函数。


cfg配置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYZnQ2W3-1673347479489)(https://files.mdnice.com/user/30966/fcdaa210-fb3a-41f6-be59-6a447fc5b6ee.png)]

GptEnableDisableNotificationApi


启用Gpt_EnableNotification和Gpt_DisableNotification,用来启用/禁止通道中断通知(与正常模式相关)。


cfg配置:

GptTimeElapsedApi


使能Gpt_GetTimeElapsed函数,该函数返回已经过的时间。


cfg配置:

GptTimeRemainingApi

使能Gpt_GetTimeRemaining函数,该函数返回到达目标时间之前剩下的时间。

cfg配置:

下图很好的说明了两个函数的作用:

GptDriverConfiguration

这里面的配置默认即可

GptClockReferencePoint

配置时钟

cfg配置:

此处我们的计数频率为选择的ATOM/TOM通道的频率,需要确认对应的频率,例如我们使用的是ATOM2的通道0,我们使用的时钟为

由CMU模块可知,CLK0分频系数为9,则此处我们使用的通道频率为100/(9+1)=10MHz.

GPT的使用

在初始化时,使用Gpt_EnableNotification函数使能通道的回调功能,使用Gpt_StartTimer开始计数

	/** Start GPT */
	Gpt_EnableNotification(GPT_CHANNEL);
	Gpt_StartTimer(GPT_CHANNEL,GPT_TIMER);

此处的GPT_TIMER是计数的个数,例如,我们此处的频率为10MHz,计数为50000,则触发Notification的时间为0.005s,我们可以在Notification函数中再次调用Gpt_StartTimer,以达到周期触发的作用

FUNC(void, CDD_E52141_CODE) Cbk_GptNotification(void)
{
	  Gpt_StartTimer(GPT_CHANNEL,GPT_TIMER);

}

总结

至此,MCAL中除了memory之外,其他常用功能都已经介绍完了。后面会继续更新memory相关的内容,包括Nvm,Memif,Fee,Fls等。


若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~ 你的鼓励是对小弟的最大支持~~~ 建了一个WX公众h,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
关于 Autosar Mcal 配置,可以提供以下信息: Autosar(AUTomotive Open System ARchitecture)是一个开放的汽车软件架构标准,旨在实现汽车电子系统的模块化、可扩展和可重用。Mcal(Microcontroller Abstraction Layer)是 Autosar 中的一个模块,用于抽象微控制器硬件和外设的差异,提供统一的接口供上层软件使用。 Mcal 配置主要涉及以下几个方面: 1. 硬件配置:包括选择适当的微控制器和外设,以满足系统要求。这可能涉及选择适当的处理器类型、内存大小、时钟频率等,并配置外设如总线控制器、定时器、ADC/DAC等。 2. 驱动程序配置:根据硬件配置选择并配置相应的驱动程序。驱动程序是与特定硬件外设交互的软件模块,提供读写寄存器、初始化外设等功能。 3. 中断配置配置中断控制器以管理硬件中断。这包括设置中断优先级、中断服务函数等。 4. 时钟配置配置时钟源和时钟分频器,以提供适当的时钟频率给微控制器和外设使用。 5. 接口配置配置与其他 Autosar 模块的接口。这可能涉及配置通信总线、CAN/LIN/FlexRay 等通信协议栈。 6. 配置参数:配置 Mcal 模块的参数,如缓冲区大小、超时时间等。 以上是一般的 Mcal 配置内容,具体的配置细节和工具可能会有所不同,具体取决于使用Autosar 开发平台和工具链。建议参考相关的 Autosar Mcal 文档和工具手册,以了解更详细的配置步骤和注意事项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赞哥哥s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值