PIC BLDC三相电机研读总结及舵机测试框架.doc

PIC BLDC三相电机研读总结及舵机测试框架.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC BLDC三相电机研读总结(james14888@gmailcom) ADC中断处理 void __attribute__((__interrupt__,auto_psv)) _ADC1Interrupt(void) { uint16 u16MotorNeutralVoltage; uint16 u16MotorPhaseA; uint16 u16MotorPhaseB; uint16 u16MotorPhaseC; DesiredSpeed = ADC1BUF0; //POT u16MotorPhaseA = ADC1BUF3; //--V1 u16MotorPhaseB = ADC1BUF2; //--V2 u16MotorPhaseC = ADC1BUF1; //--V3 u16MotorNeutralVoltage = (u16MotorPhaseA + u16MotorPhaseB + u16MotorPhaseC)/3; AD1CON1bits.DONE = 0; IFS0bits.AD1IF = 0; /************** ADC SAMPLING BMEF signals comparison ****************/ if(u16MotorPhaseA u16MotorNeutralVoltage) { Comparator.PhaseAOutput = 1; } else { Comparator.PhaseAOutput = 0; } if(u16MotorPhaseB u16MotorNeutralVoltage) { Comparator.PhaseBOutput = 1; } else { Comparator.PhaseBOutput = 0; } if(u16MotorPhaseC u16MotorNeutralVoltage) { Comparator.PhaseCOutput = 1; } else { Comparator.PhaseCOutput = 0; } u16ComparatorOutputs = (Comparator.PhaseCOutput2) 0x0007; u16ComparatorOutputs |= (Comparator.PhaseBOutput1); u16ComparatorOutputs |= Comparator.PhaseAOutput; } 输出两个参量: DesiredSpeed电位器定位的目标速度 u16ComparatorOutputs 与平均电压比较的结果指示 主函数 int main(void) { PLLFBD=38; // M=40 80MHz ;40MIPS CLKDIVbits.PLLPOST=0; // N2=2 CLKDIVbits.PLLPRE=0; // N1=2 RCONbits.SWDTEN=0; while(OSCCONbits.LOCK != 1) {}; // Wait for PLL to lock ……………………… Kps = 3000; Kis = 2; PILoopControllerOutput = 0; timer3value = 0; timer3avg = 0; …………………….. for(;;) { while (!S1); // wait for S1 button to be hit while (S1) // wait till button is released DelayNmSec(20); u16CurrentPWMDutyCycle = 1; u16DesiredPWMDutyCycle = 0; DesiredSpeed = 0; ActualSpeed = 0; SpeedError = 0; SpeedIntegral = 0; PILoopControllerOutput = 0; timer3value = 0; timer3avg = 0; PWM1CON1 = 0x0777; // enable PWM outputs DelayNmSec(1); Flags.RampUpBEMF =1; Flags.RunMotor = 1; // indicationg the run motor condition …………………….

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档