ipark.c

来自「用freescale公司的DSP56F8013芯片实现的PMSM的SVPWM 驱」· C语言 代码 · 共 45 行

C
45
字号
#include "Cpu.h"
#include "Events.h"
#include "Ipark.h"

extern int d1;									/* Q6 */
extern int q1;									/* Q6 */
extern int alfa;								/* Q6 */
extern int beta;								/* Q6 */
extern int theta;									
extern int sina[180];			
extern int cosa[180];
extern bool negative;				

void Ipark(void)								/* Q6 */
{
	int temp16;
	int temp17;
	long int temp32;
	
	if(theta>=180)
 	{
  		theta=theta-180;
  		negative=1;	
 	}
	
	temp32=(L_mult(d1,cosa[theta]))>>16;		/* Q6 */
	temp16=(int)temp32;
	temp32=(L_mult(q1,sina[theta]))>>16;		/* Q6 */
	temp17=(int)temp32;
	alfa=temp16-temp17;							/* Q6 */
	
	temp32=(L_mult(d1,sina[theta]))>>16;		/* Q6 */
	temp16=(int)temp32;
	temp32=(L_mult(q1,cosa[theta]))>>16;		/* Q6 */
	temp17=(int)temp32;
	beta=temp16+temp17;							/* Q6 */
	
	if(negative==1)
	{
		alfa=-alfa;
		beta=-beta;
		negative=0;							
		theta=theta+180;						
	}	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?