- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PICBLDC三相电机研读总结及舵机测试框架.
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
……
您可能关注的文档
最近下载
- (高清版)DB42∕T 2382-2025 《社区居家养老服务机构安全应急规范》.docx VIP
- 消防基层指挥员如何做好初战控火指挥.pptx
- EN IEC 63118-1-2024 用于汽车启动、照明、点火(SLI)应用和辅助用途的12V 锂离⼦⼆次电池 第1部分:一般要求和测试方法中文版.pdf
- 《人工智能通识基础》全套教学课件.pptx
- AutomotiveSPICE_V4.0_中文版(最新版).pdf VIP
- 工程机械焊接结构图.ppt VIP
- 2025年宜昌当阳市招聘工会协理员考试笔试试题[含答案].pdf VIP
- 中职劳动教育教学课件专题四教学课件.pptx VIP
- 财务报表分析(第6版)全套PPT课件.pptx
- 双减课题小学数学作业分层设计的策略研究课题开题报告与结题报告.pdf VIP
文档评论(0)