AUTOSAR实验七 PWM和呼吸灯

目录

一、实验目的 

二、实验环境

三、实验步骤

四、Port配置

五、MCU配置

六、PWM配置

七、主程序

八、函数参数解析

====================================================================

一、实验目的 

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

(2)采用pwm调节灯亮度

二、实验环境

Window10

服务器:windows

和服务器交互软件 winscp 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

 

三、实验步骤

1.通过EB修改MCAL的配置,配置pwm和板载RGB灯

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

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

4.执行模板工程文件中的copy批处理文件

5.通过winscp 上传工程

6.通过putty执行编译命令

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

8.通过ic5000下载调试

 

9.涉及到的模块:port模块,mcu模块(FTM时钟)、pwm模块

10.涉及到的中断 用到了FTM中断,中断在PwmHwConfiguration中配置。无需在loHwAB.c中设置。

四、Port配置

port端口之前已经配置完成,但是这里要说明一下配置命名的问题。配置命名可以按功能来划分,可以按照引脚顺序来划分,命名也分别是以功能和引脚号命名。哪一种命名方式更好呢?

根据功能命名看起来更直观,查找更便捷,但是PortPin Id是按顺序分配的,不利于后期的修改;

根据引脚顺序命名,把用到和没用到的引脚都分配,这样后期修改的工作量就减少了,但需要根据引脚去查找对应的功能,当然也可以在名字后面加上功能,那样就太长了。

总的来说,像pwm这样配置完成后不怎么使用它的名字的,用引脚名会更加方便,如果是GPIO样对每一个引脚操作需要使用它的名字的,用功能会更加方便。

五、MCU配置

六、PWM配置

PWM配置分为PwmChannel、PwmFtmModule、PwmHwConfiguration三部分。

PwmChannel配置

1.路径是PwmFtmModule配置的路径

2.是否允许在pwm周期变化,在主程序中变化周期的话,这个要设置为相应的模式,否则会出错

3.设置pwm的极性---开始一段占空比的极性

4.设置pwm的占空比,分辨率是固定了,为0x8000(32768),设定值需要在0-0x8000这个范围内。这里设定的是初始值。

5.设置pwm的参考时钟

1.选择硬件单元

2.预分频  对输入的ftm时钟进行分频,分频后得到一个tick,根据pwm周期的tick个数*tick大小可以得到周期

PwmFtmchannels配置

PwmHwConfiguration配置

在这里打开中断

注意此处的name在哪里使用?

此处的名字仅仅是标识作用,并未在代码中使用,主程序中使用的是PwmChannel中的name

 

七、主程序

Pwm_Init(&PwmChannelConfigSet);

int step_led_red = 0;

void Gpt_LPIT0_Notification(void)

{

    step_led_red +=10;

    if(step_led_red > 0x8000)

    {

        step_led_red = 0;

    }

    Pwm_SetPeriodAndDuty(PWM_FTM0_CH0_RGB_LED,800,step_led_red);

}

八、函数参数解析

void Pwm_SetPeriodAndDuty(

Pwm_ChannelType ChannelNumber,

Pwm_PeriodType Period,

uint16 DutyCycle)

参数二是周期,参数三是占空比。

占空比:Pwm模块应符合下列占空比缩放方案

0x0000 意味着占空比为 0%

0x8000 意味着占空比为 100%

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

猜你喜欢

转载自blog.csdn.net/wx601056818/article/details/104823619