⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 refframe.h

📁 非常实用的AD和pwm的ad公司21990dsp芯片的控制源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
* 	   	   angle :  angle of rotation in 1.15 format                                      *
*                                                                                      *
* Ouputs  :	none                                                                   *
*                                                                                      *
* Modified:	AX0, AY0, AX1, AY1, AR, AF, MX0, MX1, MY0, MY1, MR, SR, I0, I1, I6, M6, L6      *
*                                                                                      *
***************************************************************************************/

#define refframe_Forward_Park_angle(Input_vector, Output_vector, angle)\
		ax0= angle;\
		CALL Cos_;\
		my0=ax1;					/*my0: cos(q)*/\
		CALL Sin_;\
		my1=ax1;					/*my1: sin(q)*/\
		I1 = Output_vector;\
		I0 = Input_vector;\
		call refframe_Rotate_Vector_



/***************************************************************************************
*                                                                                      *
* Type: Macro                                                                          *
*                                                                                      *
* Call: refframe_Reverse_Park_angle(Input_vector, Output_vector, angle);               *
*                                                                                      *
* Full Reverse Park Transformation including computation of sine and cosine of         *
* rotation angle                                                                       *
*                                                                                      *
* Input:   Input_vector :  rotor reference frame vector                                          *
* 	   		Output_vector :  stationary reference frame vector                                     *
* 	   		angle :  angle of rotation in 1.15 format                                      *
*                                                                                      *
* Ouputs  :	none                                                                   *
*                                                                                      *
* Modified:	AX0, AY0, AX1, AY1, AR, AF, MX0, MX1, MY0, MY1, MR, SR, I0, I1, I6, M6, L6      *
*                                                                                      *
***************************************************************************************/
#define refframe_Reverse_Park_angle(Input_vector, Output_vector, angle)\
		ar = -angle;\
		if AV ar = pass 0x7fff;\
		ax0 = ar;\
		CALL Cos_;\
		my0=ax1;							/* my0: cos(q)*/\
		CALL Sin_;\
		my1=ax1;							/* my1: sin(q)*/\
		I1 = Output_vector;\
		I0 = Input_vector;\
		call refframe_Rotate_Vector_

/***************************************************************************************
*                                                                                      *
* Type: Macro                                                                          *
*                                                                                      *
* Call: refframe_Calc_SinCos(angle, SinCos_vector);                                    *
*                                                                                      *
* Calculatin of Sine and Cosine of given angle                                         *
*                                                                                      *
* Inputs  :  	angle :  angle of rotation in 1.15 format                                 *
* 		SinCos_vector :  vector where Sin(angle) and Cos(angle) are to be stored          *
*                                                                                      *
* Ouputs  :	None                                                                   *
*                                                                                      *
* Modified:	AX0, AY0, Ax1, AY1, AR, AF, MY0, MX1, MY1, MR, SR, I0, I6, M6, L6                    *
*                                                                                      *
***************************************************************************************/
#define refframe_Calc_SinCos(angle, SinCos_vector)\
		ax0 = angle;\
		I0 = SinCos_vector;\
		CALL Sin_;\
		DM(I0+=M0)=ax1;\
		CALL Cos_;\
		DM(I0+=M0)=ax1

/***************************************************************************************
*                                                                                      *
* Type: Macro                                                                          *
*                                                                                      *
* Call: refframe_Forward_Park_SinCos(Input_vector, Output_vector, SinCos_vector);      *
*                                                                                      *
* Forward Park Transformation with Sine and osine known                                *
*                                                                                      *
* Inputs  :   Input_vector : stationary reference frame vector                                 *
* 			  Output_vector : rotor reference frame vector                                      *
* 			  SinCos_vector : vector where Sin(angle) and Cos(angle) are stored                 *
*                                                                                      *
* Ouputs  :	None                                                                   *
*                                                                                      *
* Modified:	MX0, MX1, MY0, MY1, MR, I0, I1, I2                                     *
*                                                                                      *
***************************************************************************************/
#define refframe_Forward_Park_SinCos(Input_vector, Output_vector, SinCos_vector)\
		I1 = Output_vector;\
		I0 = Input_vector;\
		I2 = SinCos_vector;\
		my1= DM(I2+=M2);\
		my0= DM(I2+=M2);\
		call refframe_Rotate_Vector_


/***************************************************************************************
*                                                                                      *
* Type: Macro                                                                          *
*                                                                                      *
* Call: refframe_Reverse_Park_SinCos(Input_vector, Output_vector, SinCos_vector);      *
*                                                                                      *
* Reverse Park Transformation with Sine and Cosine known                               *
*                                                                                      *
* Inputs  :   	Input_vector:  rotor reference frame vector                                      *
* 				Output_vector:  stationary reference frame vector                                 *
* 				SinCos_vector:  vector where Sin(angle) and Cos(angle) are stored                 *
*                                                                                      *
* Ouputs  :	None                                                                   *
*                                                                                      *
* Modified:	AX0, AR, MX0, MX1, MY0, MY1, MR, I0, I1, I2                            *
*                                                                                      *
***************************************************************************************/
#define refframe_Reverse_Park_SinCos(Input_vector, Output_vector, SinCos_vector)\
		I1 = Output_vector;\
		I0 = Input_vector;\
		I2 = SinCos_vector;\
		ax0= DM(I2+=M2);\
		ar = -ax0;\
		if AV ar = pass 0x7fff;\
		my1 = ar;\
		my0= DM(I2+=M2);\
		call refframe_Rotate_Vector_

#endif

⌨️ 快捷键说明

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