2019-08-23 15:08发布
星丶落 发表于 2016-7-11 09:59 把那行再写上 不注释掉试试
月光疾風 发表于 2016-7-7 10:24 无感无刷的三段式启动 1、转子预定位 2、开环同步加速 3、过零检测成功后进入闭环加速
最多设置5个标签!
找到问题了 是换相子函数的问题 有些PWM通道的使能和失能可能冲突
void ComHandler(void)//换相子函数
{
TIM8->BDTR&=0<<15;//
HALLcount++;
if(bHallStartStep!=3&&bHallStartStep!=4)
PWM_A=0;
if(bHallStartStep!=0&&bHallStartStep!=5)
PWM_B=0;
if(bHallStartStep!=1&&bHallStartStep!=2)
PWM_C=0;
if(bHallStartStep==0)//AB
{
// TIM8->CCER|=1<<0; //OC1 输出使能
// TIM8->CCER&=0<<4; //OC2 输出失能
TIM8->CCER&=0<<8; //OC3 失能
TIM8->CCER|=1<<0; //OC1 输出使能
TIM8->CCR1=led0pwmval;
PWM_B=1;
LED0=0;
LED1=0;
BEEP=0;
}
else if(bHallStartStep==1) //AC
{
// TIM8->CCER|=1<<0; //OC1 输出使能
// TIM8->CCER&=0<<4; //OC2 输出失能
TIM8->CCER&=0<<8; //OC3 失能
TIM8->CCER|=1<<0; //OC1 输出使能
TIM8->CCR1=led0pwmval;
PWM_C=1;
LED0=1;
LED1=0;
BEEP=0;
}
else if(bHallStartStep==2) //BC
{
TIM8->CCER&=0<<0; //OC1 输出失能
TIM8->CCER|=1<<4; //OC2 输出使能
// TIM8->CCER&=0<<8; //OC3 失能
TIM8->CCR2=led0pwmval;
PWM_C=1;
LED1=1;
LED0=1;
BEEP=0;
}
else if(bHallStartStep==3) //BA
{
TIM8->CCER&=0<<0; //OC1 输出失能
TIM8->CCER|=1<<4; //OC2 输出使能
// TIM8->CCER&=0<<8; //OC3 失能
TIM8->CCR2=led0pwmval;
PWM_A=1;
LED1=1;
LED0=0;
BEEP=0;
}
else if(bHallStartStep==4)//CA
{
TIM8->CCER&=0<<0; //OC1 输出失能
// TIM8->CCER&=0<<4; //OC2 失能
TIM8->CCER|=1<<8; //OC3 使
TIM8->CCR3=led0pwmval;
PWM_A=1;
// BEEP=1;
LED0=0;
LED1=1;
}
else if(bHallStartStep==5) //CB
{
TIM8->CCER&=0<<0; //OC1 输出失能
// TIM8->CCER&=0<<4; //OC2 失能
TIM8->CCER|=1<<8; //OC3 使能
TIM8->CCR3=led0pwmval;
PWM_B=1;
LED0=1;
// BEEP=1;
LED1=0;
}
TIM8->BDTR|=0x8000; //允许PWM输出
}
额 有感的 用手拨一下才能动
一周热门 更多>