MCAL系列介绍04-GPT

本文框架

  • 1.前言
  • 2. 基本概念
    • 2.1 GPT通道状态
    • 2.2 Continuous/One-Shot模式
      • 2.2.1 Continuous模式
      • 2.2.2 One-Shot模式
  • 3. 功能介绍
    • 3.1 初始化
    • 3.2 Continuous模式采集过程
    • 3.3 One-Shot模式采集过程

1.前言

GPT即General Purpose Timer(s) ,通用定时器模块,该模块通过使用硬件定时器通道为操作系统或其他需要定时器功能的模块提供定时功能,GPT的作用有:

1)启动及停止硬件定时器;
2)获取定时器已过去及剩余的定时器数值;
3)控制定时器的定时数值;
4)控制时间触发的中断

总而言之,其作用就是一个定时器,为需要的模块提供定时功能。

2. 基本概念

2.1 GPT通道状态

GPT通道的状态有:Initialized/Running/Stopped/Expired四个状态,如下图:
Initialized:在GPT Driver初始化完成后状态为Initialized状态;
Running:调用Gpt_Startimer()后状态变为Running,开始计时;
计时达到目标后变为Expired,调用Gpt_Stoptimer()后状态变为Stopped。
MCAL系列介绍04-GPT_第1张图片

2.2 Continuous/One-Shot模式

GPT根据计时模式可以分为Continuous及One-Shot模式,其中c在开始计时达到设定时间后会自动开始下一轮计时,但对于One-Shot模式则需要调用API Gpt_Startimer()重新开始定时。根据不同的使用场景在MCAL中进行灵活配置。

2.2.1 Continuous模式

c
MCAL系列介绍04-GPT_第2张图片

2.2.2 One-Shot模式

One-Shot模式计时示意图:
MCAL系列介绍04-GPT_第3张图片

3. 功能介绍

3.1 初始化

在EcuM_DriveInit中会对Gpt Drver进行初始化:
MCAL系列介绍04-GPT_第4张图片

3.2 Continuous模式采集过程

Continuous模式采集过程如下:
1)调用Gpt_EnableNotification() API使能对应通道的中断服务函数;
2)调用Gpt_Startimer()开始定时;
3)在GPT Timer达到设定时间后会进入对应的中断服务函数,同时开启下一轮的定时,如此循环往复;
4)当不需要再继续定时调用Gpt_Stoptimer(),关闭定时器,停止计时。
MCAL系列介绍04-GPT_第5张图片

3.3 One-Shot模式采集过程

One-Shot模式采集过程相对比较直白,即触发一次定时就工作一次,下一次需要重新去启动,其大致工作过程如下:
1)调用Gpt_EnableNotification() API使能对应通道的中断服务函数;
2)调用Gpt_Startimer()开始定时;
3)在GPT Timer达到设定时间后会进入对应的中断服务函数;
4)当需要再次定时时重新调用Gpt_Startimer()开始定时;
4)当不需要再继续定时调用Gpt_Stoptimer(),关闭定时器,停止计时。
MCAL系列介绍04-GPT_第6张图片
以上就是对GPT Driver的基本介绍,配置部分会在后续的实战篇中介绍,如有问题欢迎随时交流,谢谢大家~

你可能感兴趣的:(Autosar扫盲系列,autosar,MCAL)