飞思卡尔智能车求助,电机反转PWM的初始化

飞思卡尔智能车求助,从网上找了个程序,对于PWM的初始化如下,
*******************************************************************
//Bus clock=64MHZ
//PWM4 PWM5 级联
PWME=0X00; // PWM模块先不可用
PWMPRCLK=0x22; //预分频 Clock A ,Clock B=Bus clock / 4=16MHZ 见datasheet P374
PWMSCLA=0x08; //Clock SA = Clock A / (2 * PWMSCLA)=16MHZ/(2*8)=1MHZ,T=1us P377
PWMSCLB=0x08; //Clock SB = Clock B / (2 * PWMSCLB)=16MHZ/(2*8)=1MHZ,T=1us P377
PWMCTL_CON45=1; //4和5联合成16位PWM
PWMCNT45=0; //计数器清零;
PWMPER45=20000; //通道周期 50Hz,舵机一般50HZ
PWMDTY45=Steer_Center; // 舵机摆正占空比----给初值
PWMPOL_PPOL5=1; //设置输出极性 ,即先默认为高电平
PWMCAE_CAE5=0; //设置左对齐方式
PWMCLK_PCLK5=1; //选择SA为PWM5的频率
PWME_PWME5=1; //PWM5使能

PWMCTL_CON23=1; //6和7联合成16位PWM;P375
PWMCNT23=0; //计数器清零;
PWMPER23=100; //通道周期 10KHz 电机一般频率设置为10KHZ
PWMDTY23=0; // 电机初值给0
PWMPOL_PPOL3=1; //设置输出极性 ,即先默认为高电平
PWMCAE_CAE3=0; //设置左对齐方式
PWMCLK_PCLK3=1; //选择SA为PWM7的频率
PWME_PWME3=1; //PWM7使能
*************************************************************************
现在只能实现电机正转,想问一下如果想让电机反转程序需要添加什么?本人纯新手,被MM拉去的- -||||||所以最好别说道理,直接上程序,万分感谢……
还有,在设置速度时,为什么PWMDTY23越大速度越小呢?
还有些初始化,本人也不懂,不知道有没有用,一并附上- -||||
/*IO口初始化,B口为输出*/
void initIOBoutput(void)
{
DDRB=0XFF; //B口为输出, 1为输出,0为输入
PORTB=0XFF;
DDRA=0x01;
PORTA=0X01; //电机驱动使能端
}
/*配置系统时钟*/
void SetBusCLK_64MHZ(void)
{
CLKSEL=0X00; //disengage PLL to system
PLLCTL_PLLON=1; //turn on PLL
SYNR =0xc0|0x07;//0xc0|0x07;增频因子
REFDV=0x80|0x01;//0xc0|0x01;分频因子
POSTDIV=0x00; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz;
_asm(nop); //BUS CLOCK=pllclock/2=64MHZ
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
COPCTL=0x00; //禁止看门狗
}

PWMDTY23是控制电机上的电压占空比的,进而控制电压 ,速度和电压有关啊
要是换向的话,无非就是把电机里相线的通电顺序改为相反啊,实现的话 我觉得不是添加什么程序,而是改一下,将相线的通电顺序改为相反。
温馨提示:答案为网友推荐,仅供参考
相似回答