概述
1.PWM是由GTM模块产生
通用定时器模块(GTM)
有4个ATOM子模块,每个子模块有8路可独立配置的通道
有3个TIM子模块,每个子模块有8路可独立配置的通道
有2个TOM子模块,每个子模块有16路可独立配置的通道
2.PWM初始化:
/*
* @param pin : PWM通道 IfxGtm_PinMap.h中 已经定义了对应的PWM管脚
* @param duty : 占空比 * ATOM_PWM_MAX
* @param pwmFreq_Hz : 频率
*/
void ATOM_PWM_InitConfig(IfxGtm_Atom_ToutMap pin, uint32_t duty, uint32_t pwmFreq_Hz)
{
}
3.设置PWM:
/*
pin :PWM通道 IfxGtm_PinMap.h中 已经定义了对应的PWM管脚
duty :占空比 * ATOM_PWM_MAX
pwmFreq_Hz : PWM频率
*/
void ATOM_PWM_SetDuty(IfxGtm_Atom_ToutMap pin, uint32_t duty, uint32_t pwmFreq_Hz)
{
}
这里面传的参数和初始化中的一样。
4.例程:
void LQ_Atom_Motor_8chPWM(void)
{
unsigned short duty=5000;
char txt[16];
TFTSPI_Init(1); //LCD初始化 0:横屏 1:竖屏
TFTSPI_CLS(u16BLUE); //蓝色屏幕
TFTSPI_P8X16Str(0, 3, "Test Motor",u16WHITE,u16BLACK); //字符串显示
GPIO_KEY_Init();
ATOM_PWM_InitConfig(ATOMPWM0, 5000, 12500);
ATOM_PWM_InitConfig(ATOMPWM1, 5000, 12500);
ATOM_PWM_InitConfig(ATOMPWM2, 5000, 12500);
ATOM_PWM_InitConfig(ATOMPWM3, 5000, 12500);
ATOM_PWM_InitConfig(ATOMPWM4, 1000, 12500);
ATOM_PWM_InitConfig(ATOMPWM5, 1000, 12500);
ATOM_PWM_InitConfig(ATOMPWM6, 1000, 12500);
ATOM_PWM_InitConfig(ATOMPWM7, 1000, 12500);
while(1)
{
if(KEY_Read(KEY0)==0)//按下KEY0键,占空比减小
{
if(duty>500)
duty-=500;
}
if(KEY_Read(KEY2)==0)//按下KEY2键,占空比加大
{
if(duty<ATOM_PWM_MAX)//满占空比为10000
duty+=500;
}
if(KEY_Read(KEY1)==0)//按下KEY1键,占空比中值
{
duty=5000;
}
ATOM_PWM_SetDuty(ATOMPWM0, duty, 12500);//驱动四个电机
ATOM_PWM_SetDuty(ATOMPWM1, 5000, 12500);
ATOM_PWM_SetDuty(ATOMPWM2, duty, 12500);
ATOM_PWM_SetDuty(ATOMPWM3, 5000, 12500);
//ATOM_PWM_SetDuty(ATOMPWM4, duty, 12500);
//ATOM_PWM_SetDuty(ATOMPWM5, duty, 12500);
//ATOM_PWM_SetDuty(ATOMPWM6, duty, 12500);
//ATOM_PWM_SetDuty(ATOMPWM7, duty, 12500);
sprintf(txt, "PWM: %05d;", duty);
TFTSPI_P8X16Str(0, 5, txt,u16WHITE,u16BLACK); //字符串显示
UART_PutStr(UART0,txt);
LED_Ctrl(LED0,RVS); //电平翻转,LED闪烁
delayms(200); //延时等待
}
}
4.1前面几步是初始化彩屏和按键的,初始化ATOM为PWM输出功能,其中PWM通道可以有好多种选择的,比如ATOMPWM0就远远不止这些。
while里的条件语句就是根据按键来改变PWM的占空比,
ATOM_PWM_SetDuty(ATOMPWM0, duty, 12500);
用这个函数就可以用来驱动电机,因为电机驱动是双桥电路,我们可以来固定一个桥的占空比,再根据调节另一个桥的占空比,形成差值,就可以控制电机的前进,后退。
最后
以上就是拼搏大碗为你收集整理的英飞凌TC264之PWM电机控制的全部内容,希望文章能够帮你解决英飞凌TC264之PWM电机控制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复