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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? probridge.c

?? 用2407做的一個小的方波逆變器程序
?? C
字號:
/* DESCRIPTION:This program uses to give out full 3-phase bridge's pulse.
               Detecting the voltage of the capacitor and the current of the circuit.
*/
#include "LF2407regs.h" 
#include <stdlib.h>
#define delay_pulse 650
#define pulse_width 500 
#define pulse_width_Vs 6000
#define QuickTest 0
#define ClearOut 0x0FF00;
#define Tmax 50000
#define Tmin 10000
#define delay_time 20000
#define LPULSE 160000  
#define T3P 400
int bFirst=1;
int AciFirst=1;
int AssVs;
int VsNum; 
void inline enable()
{
	asm(" clrc INTM ");
}
void inline disable()
{
	asm(" setc INTM ");
}
void interrupt nothing()
{
	enable();
	return;
}
void interrupt FatalERR()
{
	int bJudgeProtect=0,Int_PIVR;
	Int_PIVR=*PIVR;
	if(Int_PIVR==0x0020)
	{
		while(1)
		{
			*PADATDIR=*PADATDIR&ClearOut;
			*PBDATDIR=*PBDATDIR&ClearOut;
			*PEDATDIR=*PEDATDIR&ClearOut;
			*PFDATDIR=*PFDATDIR&ClearOut;
			bJudgeProtect=1;
		}
	}
	else
		return;
}
void  Sys_initial()
{
	asm(" setc SXM ");
	asm(" clrc OVM ");
	asm(" clrc CNF ");
	*IFR=0x0FFFF;
	*WDCR=0x00E8;
	*SCSR1=0x81FE;
	*IMR=0x0001;        
/* set *IMR to a certain value ; use it to enable homologize interrupt*/
}
void IO_initial()
{
	*MCRA=*MCRA&0x0C000; /*  set IOPA3~7 as GPIO;set IOPB0~3 as GPIO  */
	*MCRC=*MCRC&0x8000;/*  set  IOPE1 ~7 as GPIO */
	*PADATDIR=*PADATDIR|0x0C700;
	*PADATDIR=*PADATDIR&0x0C700;/* set IOPA3~5 as input pin;set IOPA6~7 as output pin*/
	*PBDATDIR=*PBDATDIR|0x0F00;
	*PBDATDIR=*PBDATDIR&0x0F00;/* set IOPB0~3 as output pin */
	*PEDATDIR=*PEDATDIR|0x7F00;
	*PEDATDIR=*PEDATDIR&0x7F00;/*set IOPE1~6 as output pin */		
}
void ADC_reset()
{	
	*ADCTRL1=0x4000;
	asm(" NOP ");
	*ADCTRL1=0x0000;
}
unsigned int AD0()
{
	int convert,j;
	volatile unsigned int *i;
	unsigned int result=0;
	unsigned int GetAd0[8];
	*ADCTRL1=0x2030;/*set AD0 work state */
	*MAXCONV=0x07;
	*CHSELSEQ1=0x1111;                
	*CHSELSEQ2=0x1111;
	*ADCTRL2=*ADCTRL2|0x4000;/*point to CONV00*/
	*ADCTRL2=*ADCTRL2|0x2000;
	for(;;)
	{
		convert=*ADCTRL2&0x0200;
		if(convert==0x0200)
			break;
		else
			continue;
	}
	i=RESULT0;
	for(j=0;j<8;j++,i++)
	{   
		GetAd0[j]=*i;
		result+=*i>>3;
	}
	if(result>Tmax)
	{
		result=Tmax;
	}
	else if(result<Tmin)
	{
		result=Tmin;
	}
	*ADCTRL2=*ADCTRL2|0x4200;/* reset SEQ1, write a  1 clear INT FLAG SEQ1*/
	return(result);	
}
	/* get the frequency */
	/* *a 得到電容電壓測量值的4倍,*b得到回路電流的測量值的4倍 */	

	/*
	用于檢測電容電壓和電流的值
	*/
void Timers_initial()
{
	*T1CON=0x150A;
	*T2CON=0x150A;
	*T3CON=0x1508;
	*GPTCONA=0x6000;
	*GPTCONB=0x6000;
	*EVAIMRA=*EVAIMRA|0x0181;
	*EVAIMRB=*EVAIMRB|0x0003;
	*EVAIFRA=*EVAIFRA&0x0181;
	*EVAIFRB=*EVAIFRB&0x0003;
}
	/*initial timers and EVA,EVxIFRx write 1 to clear */
void CapacitorCharge(unsigned long delay)
{   
	unsigned long SysWait=delay_time;
	*PADATDIR=*PADATDIR&ClearOut;
	*PEDATDIR=*PEDATDIR&ClearOut;
	*PADATDIR=*PADATDIR|B6_MSK;  
	*PEDATDIR=*PEDATDIR|B5_MSK;  /* give SCR1 and SCR8 pulse */
	for(;delay>1;delay--)
	{
		delay=delay;
	}
	*PADATDIR=*PADATDIR&ClearOut;
	*PEDATDIR=*PEDATDIR&ClearOut;
	for(;SysWait>0;SysWait--)
	{
		SysWait=SysWait;
	}
	return;
}
	/* 	Capacitor pre-charge,set IOPA6(pulse1) and IOPF0 (pulse8) 
	         as 1 and delay then set as 0
	*/
int doStart()
{
	int i;
	if(QuickTest)
	i=1;
	else
	{
		i=*PADATDIR&B3_MSK;
		if(i==B3_MSK)
		i=1;
		else 
		i=0;
	}
	return(i);
}
int doStop()
{
	int i;
	if(QuickTest)
	i=0;
	else
	{
		i=*PADATDIR&B4_MSK;
		if(i==B4_MSK)
		i=1;
		else
		i=0;
	}
	return(i);
}
int GetCapacitorPolar()
{
	int i,k;
	k=*PADATDIR&B5_MSK;
	if(k==B5_MSK)
		i=1;
	else
		i=0;
	return(i);
}
void ReportERR()
{
	;
}
void main(void)
{
	int i;
	int DelayOfAs;
	volatile unsigned long  m;    /*define some variables */
	unsigned int AD0res;    /*define a variable to get AD0's result */
	int intT1CMP,intT2CMP,intT1PER,intT2PER,intT3PER;
	int bStart,bStop;
	char *sysWait;
	unsigned long Capacitor_delay=80000;  /*use to delay for capacitor pre-charge*/
	int V_capacitor,I_circuit;
	unsigned int Vvalue,Ivalue;
	int BullCapacitorPolar;  /* use to judge the capacitor's polarity */
	disable();
	Sys_initial();
	ADC_reset();
	Timers_initial();
	IO_initial();
	enable();
start:		while((bStart=doStart())!=1)
	{
		sysWait=" ACI not start! ";
		bFirst=1;
		AciFirst=1;
		IO_initial();
	}
stop:        while((bStop=doStop()))
	{
		sysWait=" ACI stop ! ";
		bFirst=1;
		AciFirst=1;
		*T1CON=*T1CON&0x0FFBF;
		goto start;
	}
	if(bFirst)
	{
		CapacitorCharge(Capacitor_delay);
		bFirst=0;
	}
	/*
	we can use another timer to inspect if we should stop or start ACI.
	In that way we can do this work in interrupt.
	*/
	if(AciFirst)
	{
		*PADATDIR=*PADATDIR|0x00C0;
		/*IOPA6(pulse1)=1,IOPA7(pulse2)=1;*/
		for(m=LPULSE;m>0;m--)
		{
			m=m;
		}

		/*
		這個地方系統需要長時間的等待以確立使1,2導通;估計是由于電感反電勢的阻擋
		使一段時間內無法使2導通且該時間較長,因此,需要修改i的大小,使之能夠適合
		*/
		*PADATDIR=*PADATDIR&ClearOut;
		/*IOPA6(pulse1)=0,IOPA7(pulse2)=0*/
		AD0res=AD0();/* AD0()需定義*/
		*T1PER=AD0res;
		*T1CMP=AD0res-pulse_width;
		*T1CNT=0x0000;
		*T1CON=*T1CON|0x0040; /*open T1*/
		*T1CON=0x1546;
		AciFirst=0;
		AssVs=7;
		VsNum=1;
		/*clear ACI beginning Flag */
	}
	else
	{
		for(;;)
		{
			intT1CMP=*EVAIFRA&B8_MSK;
			if(intT1CMP==B8_MSK)
				break;
			else
				continue;
		}
		switch(AssVs)
		{
			case 7 :
			{
				*PEDATDIR=*PEDATDIR|B1_MSK;/* set IOPE1(pulse7)=1*/
				*EVAIFRA=*EVAIFRA&B8_MSK;/* write a 1 to clear T1CINT */
				AD0res=AD0();
				*T1PER=AD0res;
				*T1CMP=AD0res-pulse_width;
				for(;;)
				{
					intT1PER=*EVAIFRA&B7_MSK;
					if(intT1PER==B7_MSK)
						break;
					else
						continue;
				}
				*PEDATDIR=*PEDATDIR&ClearOut;/*set IOPE7(pulse7)=0*/
				*EVAIFRA=*EVAIFRA|B7_MSK;/*write a 1 to clear T1PINT*/
				*T2PER=pulse_width_Vs+delay_pulse;
				*T2CMP=delay_pulse;
				*T2CNT=0x0000;
				*T2CON=*T2CON|0x0040;
				*T3CNT=0x0000;
				*T3PER=T3P;
				*T3CON=*T3CON|0x0040;
				for(;;)
				{
					intT3PER=*EVBIFRA&B7_MSK;
					if(intT3PER==B7_MSK)
						break;
					else
						continue;
				}
				*EVBIFRA=*EVBIFRA|0x0FFFF;
				*T3CON=*T3CON&0x0FFBF;
			/*	if((*PADATDIR&B5_MSK)==B5_MSK)
			  	/*  if(((PADATDIR&B5_MSK)==B5_MSK)!=0)   */
			/*	{
					ReportERR();
				}  */
				for(;;)
				{
				 	*ADCTRL1=0x4000;
				 	asm(" NOP ");
				 	*ADCTRL1=0x0000;
				 	*ADCTRL1=0X2030;
				 	*MAXCONV=0x07;
				 	*CHSELSEQ1=0x7373;
				 	*CHSELSEQ2=0x7373;
				 	*ADCTRL2=*ADCTRL2|0x4000;
				 	*ADCTRL2=*ADCTRL2|0x2000;
				 	for(;;)
				 	{
				 		if((*ADCTRL2&0x0200)==0x200)
				 			break;
				 		else
				 			continue;
				 	}
				 	Vvalue=(*RESULT0>>6)+(*RESULT2>>6)+(*RESULT4>>6)+(*RESULT6>>6);
				 	Ivalue=(*RESULT1>>6)+(*RESULT3>>6)+(*RESULT5>>6)+(*RESULT7>>6);				 	
					V_capacitor=28220-17*Vvalue;
					I_circuit=4*Ivalue-50; 
					V_capacitor=abs(V_capacitor); 
					if((V_capacitor>=(I_circuit+1500)))
					{
						break;
					}
					else
					{   
						intT2CMP=*EVAIFRB&B1_MSK;
						if(intT2CMP==B1_MSK)
							break;
						else
							continue;
				 	}  
				}    
					/* mul 10 to I ,V*/
					/*  計算電容電壓和電流大小,進行判斷。在達到電容域值或達到固定時間間隔的時候
						給出脈沖
					*/
				switch(VsNum)
				{
					case 1 :
						*PADATDIR=*PADATDIR|B6_MSK;/* set IOPA6(pulse1)=1*/
						*EVAIFRB=*EVAIFRB|B1_MSK;/*write a 1 to clear T2CINT*/
						for(;;)
						{
							intT2PER=*EVAIFRB&B0_MSK;
							if(intT2PER==B0_MSK)
								break;
							else
								continue;
						}
						*PADATDIR=*PADATDIR&ClearOut;
						VsNum=2;
						AssVs=8;
						break;
					case 3 :
						*PBDATDIR=*PBDATDIR|B0_MSK;/*set IOPB0(pulse3)=1*/
						*EVAIFRB=*EVAIFRB|B1_MSK;/*write a 1 to clear T2CINT*/
						for(;;)
						{
							intT2PER=*EVAIFRB&B0_MSK;
							if(intT2PER==B0_MSK)
								break;
							else
								continue;
						}
						*PBDATDIR=*PBDATDIR&ClearOut;
						VsNum=4;
						AssVs=8;
						break;
					case 5 :
						*PBDATDIR=*PBDATDIR|B2_MSK;
						*EVAIFRB=*EVAIFRB|B1_MSK;/*write a 1 to clear T2CINT*/
						for(;;)
						{
							intT2PER=*EVAIFRB&B0_MSK;
							if(intT2PER==B0_MSK)
								break;
							else
								continue;
						}
						*PBDATDIR=*PBDATDIR&ClearOut;
						VsNum=6;
						AssVs=8;
						break;
				}
				*T2CON=*T2CON&0x0FFBF;
				*EVAIFRB=*EVAIFRB&B0_MSK;/* write a 1 to clear T1PCNT*/
				*EVAIFRB=*EVAIFRB|0x0FFFF;
				break;
			}
			case 8 :
			{
				*PEDATDIR=*PEDATDIR|B5_MSK;/* set IOPE2(pulse8)=1*/
				*EVAIFRA=*EVAIFRA&B8_MSK;/* write a 1 to clear T1CINT */
				AD0res=AD0();
				*T1PER=AD0res;
				*T1CMP=AD0res-pulse_width;
				for(;;)
				{
					intT1PER=*EVAIFRA&B7_MSK;
					if(intT1PER==B7_MSK)
						break;
					else
						continue;
				}
				*PEDATDIR=*PEDATDIR&ClearOut;/*set IOPF0(pulse8)=0*/
				*EVAIFRA=*EVAIFRA|B7_MSK;/*write a 1 to clear T1PINT*/
				*T2PER=pulse_width_Vs+delay_pulse;
				*T2CMP=delay_pulse;
				*T2CNT=0x0000;
				*T2CON=*T2CON|0x0040; 
				*T3CNT=0x0000;
				*T3PER=T3P;
				*T3CON=*T3CON|0x0040;
				for(;;)
				{
					intT3PER=*EVBIFRA&B7_MSK;
					if(intT3PER==B7_MSK)
						break;
					else
						continue;
				}
				*EVBIFRA=*EVBIFRA|0x0FFFF;
				*T3CON=*T3CON&0x0FFBF;
			/*	if(((*PADATDIR&B5_MSK)==B5_MSK))*/
			  	/*    if(((PADATDIR&B5_MSK)==B5_MSK)!=1)  */
			/*	{
					ReportERR();
				}  */
				for(;;)
				{
				 	*ADCTRL1=0x4000;
				 	asm(" NOP ");
				 	*ADCTRL1=0x0000;
				 	*ADCTRL1=0X2030;
				 	*MAXCONV=0x07;
				 	*CHSELSEQ1=0x7373;
				 	*CHSELSEQ2=0x7373;
				 	*ADCTRL2=*ADCTRL2|0x4000;
				 	*ADCTRL2=*ADCTRL2|0x2000;
				 	for(;;)
				 	{
				 		if((*ADCTRL2&0x0200)==0x200)
				 			break;
				 		else
				 			continue;
				 	}
				 	Vvalue=(*RESULT0>>6)+(*RESULT2>>6)+(*RESULT4>>6)+(*RESULT6>>6);
				 	Ivalue=(*RESULT1>>6)+(*RESULT3>>6)+(*RESULT5>>6)+(*RESULT7>>6);	
					V_capacitor=28220-17*Vvalue;
					I_circuit=4*Ivalue-50; 
					V_capacitor=abs(V_capacitor);
					if((V_capacitor>=(I_circuit+1500)))
					{
						break;
					}
					else
					{                                                                                                                
						intT2CMP=*EVAIFRB&B1_MSK;
						if(intT2CMP==B1_MSK)
							break;
						else
							continue;
				 	}     
				} 
					/* mul 10 to I ,V*/
					/*  計算電容電壓和電流大小,進行判斷。在達到電容域值或達到固定時間間隔的時候
						給出脈沖
					*/
				switch(VsNum)
				{
					case 2 :
						*PADATDIR=*PADATDIR|B7_MSK;
						*EVAIFRB=*EVAIFRB|B1_MSK;
						for(;;)
						{
							intT2PER=*EVAIFRB&B0_MSK;
							if(intT2PER==B0_MSK)
								break;
							else
								continue;
						}
						*PADATDIR=*PADATDIR&ClearOut;
						VsNum=3;
						AssVs=7;
						break;
					case 4 :
						*PBDATDIR=*PBDATDIR|B1_MSK;
						*EVAIFRB=*EVAIFRB|B1_MSK;
						for(;;)
						{
							intT2PER=*EVAIFRB&B0_MSK;
							if(intT2PER==B0_MSK)
								break;
							else
								continue;
						}
						*PBDATDIR=*PBDATDIR&ClearOut;
						VsNum=5;
						AssVs=7;
						break;
					case 6 :
						*PBDATDIR=*PBDATDIR|B3_MSK;
						*EVAIFRB=*EVAIFRB|B1_MSK;
						for(;;)
						{
							intT2PER=*EVAIFRB&B0_MSK;
							if(intT2PER==B0_MSK)
								break;
							else
								continue;
						}
						*PBDATDIR=*PBDATDIR&ClearOut;
						VsNum=1;
						AssVs=7;
						break;
				}
				*T2CON=*T2CON&0x0FFBF;
				*EVAIFRB=*EVAIFRB&B0_MSK; /* write a 1 to clear T1PCNT*/ 
				*EVAIFRB=*EVAIFRB|0x0FFFF;
				break;
			}
			break;
		}
	}
	goto start;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区视频在线观看| 国产一区二区免费在线| 日韩国产高清在线| 国产高清不卡一区| 欧美三级在线播放| 中文字幕视频一区| 久久99精品国产| 欧美亚洲国产一区二区三区| 久久尤物电影视频在线观看| 亚洲一区在线观看网站| 国产91精品精华液一区二区三区| 欧美久久久久免费| 亚洲精品国产品国语在线app| 久久97超碰国产精品超碰| 欧美久久久久久久久久| 亚洲欧洲国产日韩| 国产精品1024久久| 91精品久久久久久久99蜜桃 | 久久欧美中文字幕| 图片区小说区国产精品视频| 91在线观看污| 欧美激情在线免费观看| 久久精品理论片| 欧美三级日本三级少妇99| 国产精品嫩草99a| 国产精品一二二区| 久久综合精品国产一区二区三区| 午夜精品久久久久久久久久| 91国偷自产一区二区开放时间 | 久久一区二区三区四区| 日韩国产欧美在线播放| 欧美日韩一区三区| 亚洲国产精品久久不卡毛片| 91黄色小视频| 亚洲国产va精品久久久不卡综合| 色哟哟一区二区| 亚洲素人一区二区| 丁香天五香天堂综合| 日韩午夜电影av| 奇米四色…亚洲| 欧美精品乱码久久久久久按摩 | 玉米视频成人免费看| 丁香婷婷综合色啪| 精品av久久707| 欧美aaa在线| 欧洲一区在线电影| 国产精品久久久一本精品| 激情图片小说一区| 精品久久久久av影院| 免费日韩伦理电影| 欧美日本在线播放| 亚洲bt欧美bt精品777| 在线视频观看一区| 亚洲丝袜美腿综合| 91女神在线视频| 亚洲欧美成aⅴ人在线观看| 成人一区二区三区中文字幕| 久久精品在这里| 麻豆国产精品官网| 欧美国产激情二区三区| 国产91色综合久久免费分享| 中文一区一区三区高中清不卡| 国产成人精品三级| 国产精品美日韩| 91亚洲国产成人精品一区二区三| 国产精品久久精品日日| www.日韩在线| 一区二区三区中文字幕电影| 91女人视频在线观看| 国产福利91精品一区二区三区| 久久综合久久综合久久| 国产精品一二三区在线| 亚洲成人av福利| 日韩视频在线观看一区二区| 国内精品视频一区二区三区八戒| 久久精品免视看| 91在线看国产| 三级影片在线观看欧美日韩一区二区 | av综合在线播放| 一二三区精品视频| 日韩欧美卡一卡二| 成人毛片在线观看| 亚洲一区二区不卡免费| 日韩一区二区三区观看| 韩国成人在线视频| 亚洲v日本v欧美v久久精品| 精品久久人人做人人爽| 成人免费av在线| 五月综合激情婷婷六月色窝| 久久蜜桃av一区二区天堂| 免费看日韩精品| 国产精品久久久久久久久免费樱桃| 欧美影院午夜播放| 国产自产高清不卡| 日韩成人免费看| 亚洲三级电影网站| 欧美电影免费观看高清完整版在线 | 视频一区中文字幕| 日本一区二区三区电影| 色天天综合色天天久久| 青娱乐精品在线视频| 国产精品久久久久永久免费观看| 日韩免费看网站| 一本色道a无线码一区v| 精品亚洲国产成人av制服丝袜| 亚洲精品日韩综合观看成人91| 精品日韩欧美一区二区| 色94色欧美sute亚洲13| 国产一区二区久久| 日韩av中文字幕一区二区| 国产精品久久久久桃色tv| 欧美一级久久久| 久久久久99精品国产片| 欧美日韩精品三区| 白白色亚洲国产精品| 精品一区二区三区影院在线午夜| 一区二区三区中文字幕电影| 久久综合九色综合欧美就去吻| 在线视频国内一区二区| 国产v综合v亚洲欧| 免费成人美女在线观看.| 一区二区三区蜜桃网| 国产精品久久久久精k8| 久久精品这里都是精品| 精品国产乱码久久久久久老虎 | 欧美日韩免费一区二区三区视频| 国产成人自拍网| 国产一区啦啦啦在线观看| 亚洲成人在线网站| 一区二区三区在线播| 亚洲国产精品ⅴa在线观看| 日韩欧美一级二级三级| 日韩欧美亚洲国产精品字幕久久久| 欧美日韩国产在线观看| 在线亚洲一区二区| 91香蕉视频污| 色综合色狠狠天天综合色| zzijzzij亚洲日本少妇熟睡| 国产成人综合精品三级| 成人小视频免费在线观看| 国产盗摄视频一区二区三区| 国产在线精品一区在线观看麻豆| 日av在线不卡| 国产一区二区女| 国产成人aaa| 成人avav影音| 色综合中文字幕| 色综合天天综合狠狠| 高清不卡一二三区| 91理论电影在线观看| 欧美性生活一区| 欧美精品日日鲁夜夜添| 91精品国产综合久久福利软件 | 精品国产91亚洲一区二区三区婷婷| 7777精品久久久大香线蕉| 91精品国产综合久久精品app| 欧美一区二区网站| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久国产综合精品女国产盗摄| 国产三级精品三级在线专区| 国产精品国产精品国产专区不蜜| 亚洲免费资源在线播放| 亚洲成av人片一区二区梦乃| 国内外成人在线| 99久久精品免费| 欧美精品三级日韩久久| 久久九九久精品国产免费直播| 精品国产一区二区三区忘忧草| 久久久久久一二三区| 亚洲精品免费在线| 日日夜夜精品视频免费| 国产精品一区二区久久精品爱涩| 99久久久精品| 日韩天堂在线观看| 国产精品乱码人人做人人爱| 香蕉影视欧美成人| 国产伦精品一区二区三区免费迷| 99久久99久久久精品齐齐| 欧美日韩三级一区二区| 久久精品欧美日韩精品| 亚洲成人av在线电影| 国产成人精品免费网站| 99精品欧美一区二区三区综合在线| 日本久久精品电影| 欧美激情一区二区三区四区| 婷婷成人综合网| 99精品热视频| 久久久噜噜噜久久中文字幕色伊伊 | 视频在线观看91| 成人国产精品免费| 欧美成人aa大片| 亚洲一区二区三区四区在线| 国产精品自拍毛片| 91在线精品秘密一区二区| 日韩精品在线网站| 丝袜美腿成人在线| 在线视频欧美区| 国产精品久久久久久久第一福利 | 视频一区二区三区中文字幕| 成人理论电影网|