手机版

dsPIC30F2010 控制带传感器的BLDCM 无刷直流电机(11)

发布时间:2021-06-06   来源:未知    
字号:

dsPIC30F2010 microchip 无刷直流电机

AN957

void _ISR _CNInterrupt(void){

IF = 0;// 清零标志HallValue = PORTB & 0x0038;// 屏蔽其它位,保留RB3、RB4和RB5HallValue = HallValue >> 3;// 执行3次右移

OVDCON = StateLoTable[HallValue];// 装载改写控制寄存器}

/*********************************************************************ADC中断用给定的电位计值装载DesiredSpeed变量。然后用该值来确定速度误差。当电机不运行时,使用来自电位计的直接给定值作为PDC值。

*********************************************************************/void _ISR _ADCInterrupt(void){

IFS0bits.ADIF = 0;

DesiredSpeed = ADCBUF0;if (!Flags.RunMotor)

{

PDC1 = ADCBUF0;// 赋值……PDC2 = PDC1;// 并装载所有的三个PWM……PDC3 = PDC1;// 占空比寄存器}

}

/************************************************************************该主程序控制初始化,按键以起动和停止电机。

************************************************************************/int main(void){

LATE = 0x0000;// 设置为输出PWM信号CNEN1 = 0x00E0;// 使能CN5、CN6和CN7// 使能内部上拉IF = 0;// 清零IE = 1;// 允许CN中断SpeedError = 0;SpeedIntegral = 0;InitTMR3();InitMCPWM();InitADC10();while(1){

while (!S2);// 等待按开始键while (S2)// 等待直到释放按键

DelayNmSec(10);

// 通过端口B读来自霍尔位置传感器的信号HallValue = PORTB & 0x0038;// 屏蔽其它位,保留RB3、RB4和RB5HallValue = HallValue >> 3;// 右移以获得值1、2……6OVDCON = StateLoTable[HallValue];// 装载改写控制寄存器PWMCON1 = 0x0777;// 使能PWM输出Flags.RunMotor = 1;// 将标志置1T3CON = 0x8030;// 启动TMR3while (Flags.RunMotor)// 当电机运行时

if (!S2)// 如果未按下S2

© 2005 Microchip Technology Inc.DS00957A_CN第13页

dsPIC30F2010 控制带传感器的BLDCM 无刷直流电机(11).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)