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

📄 simbemfinput.c

📁 实现120无传感器变频输出
💻 C
字号:
/****************************************************************************/
/*                                                                          */
/*      trapezoidl wave control without sensor (back EMF)                   */
/*               (carrier 20kHz)                                            */
/****************************************************************************/
//2005-8-7 13:20
#include "typedefine.h"
#include "sfr26a.h"
#include "simbemfinput.h"

#include "com_def.h"

//2005-8-7 13:25

UINT_16 phaseperiodbuf =  INIperiod ;//1200;//30;//1200;//1200;
UINT_16 phaseperiod = INIperiod ;//30;//1200;//1200;//30;//600;//60;//60;	//1000rpm 20000 * 60 /1000
//UINT_16 pre_phaseperiod = 300;//1200;
UINT_16 W_phase_cnt = INIperiod;//INIperiod /6;//200;//5;//1200 - 1000;//800;// 20;//400;	
UINT_16 V_phase_cnt = INIperiod;//INIperiod  - INIperiod /6;//1000;//25;//1200 - 200;//400;//10;//200;//200;//400;	
UINT_16 U_phase_cnt = INIperiod;//INIperiod /2;//600;//15;//1200 - 600;
UINT_8 Phaseoutputflag = 0;
//2005-8-7 13:25
#define UIN	p10_5		/*INT5/P17*/
#define VIN	p10_6		/*INT3/P15*/
#define WIN 	p10_7		/*INT4/P16*/

#define PHASEIN(phase)	{\
if ( ##phase##_phase_cnt < phaseperiod )\
{\
##phase##_phase_cnt ++;\
}\
else\
{\
##phase##IN = ~##phase##IN;\
##phase##_phase_cnt = 1;\
}\
}


inline void WphaseIN (void);
inline void WphaseIN (void)
{
	if ( W_phase_cnt < phaseperiod )
	{
		W_phase_cnt ++;
	}
	else
	{
		WIN = ~WIN;		
		W_phase_cnt = 1;
		if ( phaseperiodbuf  != phaseperiod)
		{
			phaseperiod = phaseperiodbuf;
			V_phase_cnt = phaseperiod * 2 /3;
			U_phase_cnt = phaseperiod /3;			
		}
	}
}
void sim_posinfo (void )
{
	//PHASEIN(U);
	//PHASEIN(V);
	//PHASEIN(W);
	//UIN = ~ UIN;
	//VIN = ~ VIN;
	//WIN = ~ WIN;	
	WphaseIN();
	PHASEIN(V);
	PHASEIN(U);
	//pd10 = 0xe0;
}
//2005-8-7 13:20

⌨️ 快捷键说明

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