[技术问答] 无刷直流电机反电动势三步法,为什么换相超过80000次,要...

[复制链接]
 楼主| adandan 发表于 2019-6-17 21:10 | 显示全部楼层 |阅读模式
本帖最后由 adandan 于 2019-6-17 21:12 编辑

  case 3:
            if (MotorA.FlagBEMF == 0)      //未检测到过零事件    MotorA.FlagBEMF 过零事件标志
            {
              if (MotorA.PWMTicks >= 4)//消磁
                      {           
                if ( BEMF()) //判断是否过零点
                {               
                  MotorA.FlagSwitchStep = MotorA.PWMTicksPre >> 4;   //延迟30电角度 PWMTicksPre记录的是上一步的时间
                  MotorA.FlagBEMF = 1;             //检测到过零事件,不再检测                     
                 }
              }
            }
            else
            {
                if (MotorA.FlagSwitchStep == 0)      //延迟时刻到
                {               
                    BLDC_SwitchStep();               //换向
                    BEMF_Cnt++;    //换向计数加1            
                }
                else
                {
                    MotorA.FlagSwitchStep--;   //延时时刻未到,自减
                }

            }

            if (BEMF_Cnt >= 800000)       //800000次换向之后,停止
            {   
                MotorA.State++; //状态加1                           
                BEMF_Cnt = 0; //换向计数清零
            }        
            break;
        case 4:
            BLDC_Stop();
            break;
643757107 发表于 2019-6-18 08:58 | 显示全部楼层
要干啥,看不到标题。
643757107 发表于 2019-6-18 08:58 | 显示全部楼层
标题放正文里,
dhr1272824176 发表于 2019-6-20 16:09 | 显示全部楼层
旁观者,不解不解!!!
yiyigirl2014 发表于 2019-6-20 20:07 | 显示全部楼层
为何8万次。。。
yiyigirl2014 发表于 2019-6-20 20:07 | 显示全部楼层
看错了,是八十万次,是啥 ??不懂楼主是啥目的。
zhuomuniao110 发表于 2019-6-20 23:47 | 显示全部楼层
为什么,?因为你程序这么写的
zhuomuniao110 发表于 2019-6-20 23:47 | 显示全部楼层
换向后要干啥用?
zhuomuniao110 发表于 2019-6-20 23:47 | 显示全部楼层
另外你的标题中问题后面没了。
wahahaheihei 发表于 2019-6-22 23:33 | 显示全部楼层
然后干啥?
xuanhuanzi 发表于 2019-6-24 23:35 | 显示全部楼层
这是跟啥有关
heisexingqisi 发表于 2019-6-27 00:57 | 显示全部楼层
那就不知道你为何那么写程序了。
heisexingqisi 发表于 2019-6-27 00:57 | 显示全部楼层
没这个要求的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部