目录
一、实验目的
二、实验环境
三、实验步骤
四、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%