dsPIC30F2010 控制带传感器的BLDCM 无刷直流电机(10)
发布时间:2021-06-06
发布时间:2021-06-06
dsPIC30F2010 microchip 无刷直流电机
AN957
#define __dsPIC30F2010__
#include "c:\pic30_tools\support\h\p30F2010.h"
#define FCY 10000000// xtal = 5.0Mhz;PLLx8#define MILLISEC FCY/10000// 1 mS延迟常数#define FPWM 16000#define Ksp1200#define Ksi10
#define RPMConstant60*(FCY/256)#define S2!PORTCbits.RC14
void InitTMR3(void);void InitADC10(void);void AverageADC(void);
void DelayNmSec(unsigned int N);void InitMCPWM(void);void CalculateDC(void);void GetSpeed(void);unsigned RunMotor : 1;unsigned Minus : 1;unsigned unused : 14;Flags;
}
unsigned int HallValue;int Speed;
unsigned int Timer3;unsigned char Count;
unsigned char SpeedCount;int DesiredSpeed;int ActualSpeed;int SpeedError;int DutyCycle;
int SpeedIntegral;
//*************************************************************
以下是低端驱动器表。在此StateLoTable中,
PWM信号,而高端驱动器为“导通”或“截止”状态。 在本练习中使用此表。
*************************************************************/unsigned int StateLoTable[] = {0x0000, 0x1002, 0x0420, 0x0402,
0x0108, 0x1008, 0x0120, 0x0000};
/****************************************************************以下是变化通知引脚CN5、CN6和CN7的中断向量。
当霍尔传感器改变状态时,将引起中断,指令执行将转到下面的子程序。然后用户必须读端口B的第3位、第4位和第5位,对读到的值进行移位和调节以使之读作1、2……6。
然后将调整后的值用作查找表StateLoTable中的偏移量以确定装入OVDCON寄存器的值。
*****************************************************************/
DS00957A_CN第12页© 2005 Microchip Technology Inc.