亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? power.c

?? 基于dsp2812逆變電源設(shè)計(jì) 基于dsp2812逆變電源設(shè)計(jì)
?? C
?? 第 1 頁 / 共 2 頁
字號:
//File_name:   Power.c
//Function:    逆變電源的控制 
//Author:      郭建成
//Creat Date:  2007/5/30
//Finish Date: 2007

//#include "math.h"
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"

//#define   Adapt_Filter
//#define   Debug_Mode
float Sin_50[]=
{	0,0.031411,0.062791,0.094108,0.12533,0.15643,0.18738,0.21814,0.24869,0.27899,
	0.30902,0.33874,0.36812,0.39715,0.42578,0.45399,0.48175,0.50904,0.53583,0.56208,
	0.58779,0.61291,0.63742,0.66131,0.68455,0.70711,0.72897,0.75011,0.77051,0.79016,
	0.80902,0.82708,0.84433,0.86074,0.87631,0.89101,0.90483,0.91775,0.92978,0.94088,
	0.95106,0.96029,0.96858,0.97592,0.98229,0.98769,0.99211,0.99556,0.99803,0.99951,1
};

float Sin_400[]=
{	0,0.1564,0.3090,0.4540,0.5878,0.7071,0.8090,0.8910,0.9511,0.9877,1};

float Sin_500[]=
{	0,0.1736,0.3420,0.5000,0.6428,0.7660,0.8660,0.9397,0.9848,1};

#ifdef Adapt_Filter
	float source[200];
	int Sample_Num=10,Total_Num=200;	
	float   result[200];
	void adapt_filter();
#endif


void	SendData(Uint16	data);
void Init_Data();
void Init_Spwm_Data();
void Init_scia_Data();
void Init_AD_Data();


// Prototype statements for functions found within this file.
interrupt void T1UF_Interrupt_Isr();
interrupt void SCIA_TX_Isr();
interrupt void SCIA_RX_Isr();
interrupt void AD_Interrupt_Isr();

#ifdef Debug_Mode
Uint32  T1UFInterruptCount=0;
Uint32  ADInterruptCount=0;
#endif

Uint16	LedCount = 0;
Uint16	SpiCount = 0;

void main(void)
{
	#ifdef Adapt_Filter
	int i;
	#endif
	/*初始化系統(tǒng)*/
	InitSysCtrl();
	
	/*關(guān)中斷*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/*初始化PIE*/
	Init_Data();
	InitPieCtrl();

	/*初始化PIE中斷矢量表*/
	InitPieVectTable();	
	InitGpio();
	
	/*初始化外設(shè)*/
    InitPeripherals();
	InitXIntrupt();

	
	
	EALLOW;	// This is needed to write to EALLOW protected registers
	PieVectTable.T1UFINT=&T1UF_Interrupt_Isr;
	PieVectTable.TXAINT=&SCIA_TX_Isr;
	PieVectTable.RXAINT=&SCIA_RX_Isr;
	PieVectTable.ADCINT=&AD_Interrupt_Isr;
	EDIS;   // This is needed to disable write to EALLOW protected registers

    
//	IER |=(M_INT1|M_INT2|M_INT9);
	
	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM
	SciaRegs.SCITXBUF=0;             //發(fā)任意數(shù)開始發(fā)送數(shù)據(jù)

	while(AdcRegs.ADC_ST_FLAG.bit.SEQ1_BSY==0)			
		AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;

	
	#ifdef Adapt_Filter
		for(i=0;i<200;i++)
			{
				source[i]=sin(3.14159/Sample_Num*i);
				source[i]+=(float)rand()/32767;
				source[i]+=(float)rand()/32767;
			}
		adapt_filter();
	#endif
	for(;;);	

} 
#ifdef Adapt_Filter
	void adapt_filter()
	{
		int i,k=5;
		float u=0.0005; //收斂因子
		float Ref_Signal1,Ref_Signal2,Ref_Signal3,Ref_Signal4, err;
		float  w1_now,w1_past,w2_now,w2_past,w3_now,w3_past,w4_now,w4_past; //權(quán)值系數(shù)
		w1_now=0.2;
		w2_now=0.1;
		w3_now=0.05;
		w4_now=0.02;
		for(i=0;i<Total_Num;i++)
		{
			Ref_Signal1=k*sin(3.14159/Sample_Num*(i));
			Ref_Signal2=k*sin(3.14159/Sample_Num*(i)+0.7);
			Ref_Signal3=k*sin(3.14159/Sample_Num*(i)+1.4);
			Ref_Signal4=k*sin(3.14159/Sample_Num*(i)+2.2);
			w1_past=w1_now;
			w2_past=w2_now;
			w3_past=w3_now;
			w4_past=w4_now;
			result[i]=w1_now*Ref_Signal1+w2_now*Ref_Signal2+w3_now*Ref_Signal3+w4_now*Ref_Signal4;
			err=source[i]-result[i];
			w1_now=w1_past+2*u*err*Ref_Signal1;
			w2_now=w2_past+2*u*err*Ref_Signal2;
			w3_now=w3_past+2*u*err*Ref_Signal3;
			w4_now=w4_past+2*u*err*Ref_Signal4;
		}
	}
#endif	
void Init_Data()
{
	 Init_Spwm_Data();
	 Init_scia_Data();
	 Init_AD_Data();	
}

void Init_scia_Data()
{	
	Uint16 i;
	SciaData.Tx_Flag=0;
	for(i=0;i<100;i++)
		SciaData.Buffer_Data[i]=0xFF;
	SciaData.Rx_Count=0;
	SciaData.Tx_Count=0;
}
void Init_AD_Data()
{
	AdData.adclo=0;
	AdData.AdCount=0;
}
interrupt void AD_Interrupt_Isr()
{
	#ifdef Debug_Mode	
	ADInterruptCount++; 
	#endif                                                                                                                                                                                                
	AdData.AdCount++;
	AdData.Result_Data[0]=((float)AdcRegs.RESULT0)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[1]=((float)AdcRegs.RESULT1)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[2]=((float)AdcRegs.RESULT2)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[3]=((float)AdcRegs.RESULT3)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[4]=((float)AdcRegs.RESULT4)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[5]=((float)AdcRegs.RESULT5)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[6]=((float)AdcRegs.RESULT6)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[7]=((float)AdcRegs.RESULT7)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[8]=((float)AdcRegs.RESULT8)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[9]=((float)AdcRegs.RESULT9)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[10]=((float)AdcRegs.RESULT10)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[11]=((float)AdcRegs.RESULT11)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[12]=((float)AdcRegs.RESULT12)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[13]=((float)AdcRegs.RESULT13)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[14]=((float)AdcRegs.RESULT14)*3.0/65520.0+AdData.adclo;
	AdData.Result_Data[15]=((float)AdcRegs.RESULT15)*3.0/65520.0+AdData.adclo;
	AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
	AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
	PieCtrl.PIEACK.all|=PIEACK_GROUP1;
}

interrupt void SCIA_TX_Isr()
{

	SciaRegs.SCICTL2.bit.TXINTENA=0;	//關(guān)閉串口A發(fā)送中斷
//	if(SciaData.Tx_Flag>0)
	{
		SciaRegs.SCITXBUF=SciaData.Buffer_Data[SciaData.Tx_Count];
		SciaData.Tx_Count++;
		if(SciaData.Tx_Count>=100)
			SciaData.Tx_Count=0;
		SciaData.Tx_Flag--;
	}
	PieCtrl.PIEACK.all|=PIEACK_GROUP9;
	SciaRegs.SCICTL2.bit.TXINTENA=1;	//打開串口A接收中斷
}

interrupt void SCIA_RX_Isr()
{
	SciaRegs.SCICTL2.bit.RXBKINTENA=0;	//關(guān)閉串口A發(fā)送中斷

	SciaData.Buffer_Data[SciaData.Rx_Count]=SciaRegs.SCIRXBUF.all;
	SciaData.Rx_Count++;
	if(SciaData.Rx_Count>=100)
		SciaData.Rx_Count=0;
	SciaData.Tx_Flag++;
			
	if(SciaRegs.SCICTL2.bit.TXRDY)
	{
		SciaRegs.SCITXBUF=SciaData.Buffer_Data[SciaData.Tx_Count];
		SciaData.Tx_Count++;
		if(SciaData.Tx_Count>=100)
			SciaData.Tx_Count=0;
	}

	PieCtrl.PIEACK.all|=PIEACK_GROUP9;	
	SciaRegs.SCICTL2.bit.RXBKINTENA=1;   //打開串口A接收中斷
}

		

interrupt void T1UF_Interrupt_Isr()    
{
	
	EvaRegs.EVAIMRA.bit.T1UFINT=0;    //關(guān)T1下溢中斷
	#ifdef Debug_Mode
	T1UFInterruptCount++;
	#endif
	
	//A相設(shè)置
	//////////////////////////////////////////////	
	if(SpwmData.PhaseA.SampleCount_PerPhase>=SpwmData.SampleSum_PerPhase)
	{
		SpwmData.PhaseA.SampleCount_PerPhase=0;	//若一相位計(jì)滿,開始下一相位計(jì)數(shù)
		SpwmData.PhaseA.Phase_SinOut++;			//所在的相位增加
		if(SpwmData.PhaseA.Phase_SinOut>4)
			SpwmData.PhaseA.Phase_SinOut=1;		//若4個(gè)相位都計(jì)過,則重新從1相位開始
	}
	///////////////////////////////////////////////
	if(SpwmData.PhaseA.Phase_SinOut==1)
	{
		
		if(SpwmData.PhaseA.DB_Switch_Flag)
		{
			EvaRegs.DBTCONA.bit.EDBT1=1;	//若上下臂切換時(shí),設(shè)置死區(qū),防止上下臂同時(shí)導(dǎo)通
			SpwmData.PhaseA.DB_Switch_Flag=0;
			EvaRegs.ACTR.bit.CMP1ACT=2;		//CMP1高有效,打開A相上臂
			EvaRegs.ACTR.bit.CMP2ACT=0;		//CMP2強(qiáng)制低,關(guān)閉A相下臂				
		}
		else
			EvaRegs.DBTCONA.bit.EDBT1=0;
			
	}
	/////////////////////////////////////
	if(SpwmData.PhaseA.Phase_SinOut==2)
	{
		
		if(SpwmData.PhaseA.DB_Switch_Flag==0)
		{
			SpwmData.PhaseA.DB_Switch_Flag=1;
			EvaRegs.ACTR.bit.CMP1ACT=2;		//CMP1高有效,打開A相上臂
			EvaRegs.ACTR.bit.CMP2ACT=0;		//CMP2強(qiáng)制低,關(guān)閉A相下臂
		}
			
	}
	///////////////////////////////////////////
	if(SpwmData.PhaseA.Phase_SinOut==3)
	{
	
		if(SpwmData.PhaseA.DB_Switch_Flag)
		{
			EvaRegs.DBTCONA.bit.EDBT1=1;	//若上下臂切換時(shí),設(shè)置死區(qū),防止上下臂同時(shí)導(dǎo)通
			SpwmData.PhaseA.DB_Switch_Flag=0;
			EvaRegs.ACTR.bit.CMP1ACT=0;		//CMP1強(qiáng)制低,關(guān)閉A相上臂
			EvaRegs.ACTR.bit.CMP2ACT=2;		//CMP2高有效,打開A相下臂				
		}
		else
			EvaRegs.DBTCONA.bit.EDBT1=0;
				
	}
	///////////////////////////////////////////////
	if(SpwmData.PhaseA.Phase_SinOut==4)
	{
		if(SpwmData.PhaseA.DB_Switch_Flag==0)
		{
			SpwmData.PhaseA.DB_Switch_Flag=1;
			EvaRegs.ACTR.bit.CMP1ACT=0;		//CMP1強(qiáng)制低,關(guān)閉A相上臂
			EvaRegs.ACTR.bit.CMP2ACT=2;		//CMP2高有效,打開A相下臂

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本成人在线观看| 亚洲色图另类专区| 日韩一级黄色大片| 91精品国产综合久久久蜜臀图片| 色老汉av一区二区三区| 91搞黄在线观看| 欧美在线视频你懂得| 在线观看一区二区精品视频| 日本精品裸体写真集在线观看| 99r精品视频| 日本久久精品电影| 欧美视频一区二区| 欧美日韩成人激情| 欧美一级日韩免费不卡| 日韩免费看的电影| 2022国产精品视频| 国产偷国产偷精品高清尤物| 欧美韩日一区二区三区四区| 国产精品欧美综合在线| 中文字幕一区二区在线播放| 亚洲老妇xxxxxx| 亚洲一区二区三区四区不卡| 午夜伦理一区二区| 久久疯狂做爰流白浆xx| 国产精品99久久久久久久vr | 久久精品国产999大香线蕉| 三级欧美韩日大片在线看| 欧美aⅴ一区二区三区视频| 久久超碰97中文字幕| 成人小视频在线| 一本久久精品一区二区| 欧美裸体bbwbbwbbw| 欧美r级在线观看| 国产精品色哟哟网站| 一级日本不卡的影视| 日本强好片久久久久久aaa| 激情文学综合丁香| 成人激情开心网| 欧美视频在线播放| 精品国产伦一区二区三区观看体验 | 色综合中文字幕国产 | 欧美视频在线一区| 精品福利一区二区三区免费视频| 国产亚洲成年网址在线观看| 成人免费视频在线观看| 日本亚洲天堂网| 成人开心网精品视频| 欧美日韩黄色影视| 国产天堂亚洲国产碰碰| 夜夜精品视频一区二区| 国产一区二区影院| 欧美日韩一区二区在线观看| 久久久精品欧美丰满| 成人av在线资源| 538在线一区二区精品国产| 国产欧美精品一区二区色综合朱莉| 亚洲女性喷水在线观看一区| 蜜臀av性久久久久蜜臀av麻豆| 成人久久视频在线观看| 777色狠狠一区二区三区| 国产精品萝li| 美女爽到高潮91| 色香蕉成人二区免费| 久久精品亚洲精品国产欧美| 亚洲国产精品一区二区www| 处破女av一区二区| 欧美一级免费观看| 亚洲激情综合网| 成人性生交大合| 精品久久国产97色综合| 性做久久久久久免费观看| 国产成人av一区二区三区在线| 欧美美女直播网站| 日韩久久一区二区| 国产二区国产一区在线观看| 日韩一区二区免费视频| 一区二区三区在线高清| 成人爽a毛片一区二区免费| 日韩欧美国产不卡| 亚洲成av人在线观看| 91视频一区二区| 国产欧美日韩亚州综合| 国产资源在线一区| 欧美一区二区三区白人| 亚洲第一搞黄网站| 一本一本大道香蕉久在线精品| 国产三级久久久| 国产在线播精品第三| 日韩欧美一级在线播放| 午夜欧美视频在线观看| 在线看不卡av| 亚洲一区欧美一区| 在线看国产一区二区| 亚洲美女淫视频| 91免费在线播放| 日韩伦理免费电影| 99久久久精品免费观看国产蜜| 国产日韩综合av| 国产成a人亚洲| 国产无一区二区| 国产成人免费在线| 久久久精品综合| 粉嫩aⅴ一区二区三区四区| 国产亚洲欧洲997久久综合 | 国产suv精品一区二区883| 日韩欧美123| 久久99久久久欧美国产| 欧美电视剧在线观看完整版| 日韩精彩视频在线观看| 欧美在线不卡一区| 亚洲高清免费在线| 91精品国产aⅴ一区二区| 日本中文一区二区三区| 日韩一区二区三区观看| 久久福利资源站| 欧美极品美女视频| www.久久久久久久久| 亚洲视频一区二区在线| 欧美综合视频在线观看| 爽好久久久欧美精品| 日韩区在线观看| 精品无人区卡一卡二卡三乱码免费卡| 日韩精品一区二区三区老鸭窝 | 精品污污网站免费看| 亚洲成人动漫在线免费观看| 欧美高清视频www夜色资源网| 日韩av一区二区三区四区| 日韩欧美美女一区二区三区| 国内一区二区在线| 国产精品麻豆视频| 欧美日韩在线播放| 精品一区二区三区免费观看| 国产日韩欧美精品一区| 色综合天天在线| 日韩制服丝袜av| 久久亚洲精品国产精品紫薇| av网站一区二区三区| 亚洲成人av资源| 久久久久青草大香线综合精品| 福利电影一区二区| 亚洲国产精品一区二区尤物区| 日韩免费福利电影在线观看| 成人综合婷婷国产精品久久蜜臀| 一区二区在线观看免费| 日韩欧美aaaaaa| 91浏览器打开| 六月丁香婷婷久久| 亚洲天堂精品视频| 91精品国产入口| av色综合久久天堂av综合| 日韩影院在线观看| 国产精品你懂的| 69av一区二区三区| 波多野结衣中文字幕一区二区三区| 亚洲在线成人精品| 久久精品免费在线观看| 欧美视频一区在线| 成人中文字幕电影| 日本亚洲天堂网| 国产精品高清亚洲| 日韩欧美不卡在线观看视频| 91丨九色丨蝌蚪富婆spa| 另类人妖一区二区av| 亚洲欧美日韩成人高清在线一区| 91精品国产91久久久久久一区二区| 国产a级毛片一区| 日韩电影网1区2区| 国产精品麻豆视频| 久久久久久亚洲综合| 欧美精品精品一区| 91香蕉视频在线| 国产精品小仙女| 蜜臀精品久久久久久蜜臀| 樱花影视一区二区| 中日韩免费视频中文字幕| 欧美一级搡bbbb搡bbbb| 欧美私人免费视频| 99久久国产综合精品麻豆| 国产一区欧美日韩| 久久精品国产亚洲a| 五月综合激情网| 一区二区三区高清在线| 中文字幕亚洲精品在线观看| 欧美草草影院在线视频| 欧美肥妇毛茸茸| 欧美午夜精品电影| 91免费视频网| 99re成人在线| 成人精品视频一区| 国产98色在线|日韩| 韩国av一区二区三区在线观看| 日本亚洲最大的色成网站www| 亚洲第一二三四区| 亚洲电影一区二区三区| 亚洲柠檬福利资源导航| 成人欧美一区二区三区视频网页| 久久久久久久久蜜桃| 精品免费日韩av| 精品国内二区三区| 精品免费日韩av|