1
、下面对
main.c
文件中的源代码进行修改,将
main.c
文件修改为以下形式:
#include "tle_device.h"
int adc1;
int adc2;
int main(void)
{
uint8_t pwm_dir;//定义pwm的方向
/*****************************************************************************
** initialization of the hardware modules based on the configuration done **
** by using the IFXConfigWizard **
*****************************************************************************/
TLE_Init();
CCU6_T12_Str_En(); //初始化 T12 定时器
CCU6_StartTmr_T12(); // 启动 T12 定时器
BDRV_Set_Bridge(Ch_LS_PWM, Ch_PWM, Ch_LS_PWM, Ch_PWM); //将PWM信号映射到 LS1, HS1, LS2 和 HS2四个H桥的桥臂 */
pwm_dir = CCU6_MASK_COUT60 | CCU6_MASK_CC60; //设置要用PWM调制的H桥桥臂,GL1、GH1
CCU6_Passive_Level_High_Sel(CCU6_MASK_CC61); //设置CC61信号为常高,即GH2常通
for (;;)
{
(void)WDT1_Service(); //看门狗服务
CCU6_T12_Modulation_En(pwm_dir); //设置CCU6的输出方向
CCU6_Ch0_Value_Set(adc1); // 设置通道1的占空比
CCU6_Ch1_Value_Set(adc2); //设置通道2的占空比
CCU6_T12_Str_En(); //初始化 T12 定时器
}
}
2
、设置
adc1
为
500
,
adc2
为
1000
因为
CC61
信号为常高,即
GH2
常通,所以
adc2
参数设置为多少,
GH2
都一直保持常通,
所以
adc2
的值对功能没有任何影响,此处设置为
1000.
此时
GH2
常通、
GH1
、
GL1
在
PWM
控制下进行开关
各引脚电压为:
V(gh1) = 12V, V(gh2) = 24V, V(gl1) = 5V, V(gl2) = 0V
V(sh1) = 6V, V(sh2) = 12V, V(sl) = 0V
各引脚的电压波形为:
GH2:
SH2:
GL2:
SL:
GL1:
GL1引脚的电压峰值为10V,但是高电平的时间占信号所有的时间为50%,所以用万用表量出来GL1引脚电压为5V。
adc1值设置为500,占空比的总周期为1000,所以设置的占空比为50%,程序参数与示波器采集到的波形相符合。
SH1:
SH1引脚的电压峰值为12V,但是高电平的时间占信号所有的时间为50%,所以用万用表量出来SH1引脚电压为6V。
GH1:
GH1引脚的电压峰值为24V,但是高电平的时间占信号所有的时间为50%,所以用万用表量出来GH1引脚电压为12V。
3、H桥导通示意图: