AUTOSAR实验三 GPT控制LED周期闪烁

一、实验目的 

(1)熟悉GPT的配置参数,实际操作找出阅读文档没有注意的问题

(2)实现定时器中断,改变LED电平

二、实验环境

Window10

服务器:windows

和服务器交互软件 winscp574 putty

Autosar Version: 4.2.2

Tresos studio 23.0

MCAL Version: S32K14X_MCAL4_2_RTM_HF8_1_0_1

Compiling environment:greenhill 201714

调试环境:ic5000

三、实验步骤

DIO 在实验一已经配置过了,这里不再涉及。

1.通过EB修改MCAL中GPT的配置

2.在EB中验证配置,生成output输出文件

3.拷贝MCAL工程文件替代模板工程中的MCAL工程文件

4.执行模板工程文件中的copy批处理文件,拷贝到指定位置

5.通过winscp 上传工程到服务器

6.通过putty执行编译命令

7.将编译过得工程下载到local

8.通过ic5000下载调试,观察现象

四、GPT配置

第一步配置硬件

 

第二步配置参考时钟

参考时钟由 MCU>>McuClockSetting>>McuClockSettingConfig_0>>McuClockReferencePoint该标签页配置得到。

配置说明:通过LPIT关键字检索该芯片的芯片手册,可以得到下图,从中我们可以看到输入源有哪些时钟,选择一个合适的。这里选择LPIT_CLK

 

第三步配置GPT通道还有通知函数

 

 

 

第四步还要配置工程中的中断向量表

涉及到的文件分别为:Vector_core.s loHwAB.c s32k146.h

Vector_core.s 中为函数入口

s32k146.h 定义了中断号

loHwAB.c 文件中根据中断号和中断处理函数名 注册 中断

具体实现如下(参照上下代码也能看懂):

 

五、代码实现

初始化部分

Gpt_Init(&GptChannelConfigSet);

Gpt_EnableNotification(GptConf_GptChannelConfiguration_GptChannelConfiguration_0);

Gpt_StartTimer(GptConf_GptChannelConfiguration_GptChannelConfiguration_0, 4000000);//400001ms

关于定时时间:根据时钟源而定,这里时钟源的频率为4.0E7,故定时1ms需要计数到40000, 周期、频率、和tick的关系要弄明白。

实现部分

void Gpt_LPIT0_Notification(void)

{

static int RGB_LED_status = 0;

if(RGB_LED_status==0)

RGB_LED_status =1;

else

RGB_LED_status =0;

Dio_WriteChannel(DioConf_DioChannel_RGB_LED,RGB_LED_status);

}

发布了39 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/wx601056818/article/details/92114661
今日推荐