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

📄 probridge.pp

📁 用2407做的一个小的方波逆变器程序
💻 PP
📖 第 1 页 / 共 2 页
字号:
#line 11 "LF2407regs.h"
volatile unsigned int *IMR  = (volatile unsigned int *)0x0004;
 
volatile unsigned int *GREG = (volatile unsigned int *)0x0005;
 	
volatile unsigned int* IFR 	= (volatile unsigned int *) 0x0006;
 
volatile unsigned int* ABRPT	= (volatile unsigned int *) 0x01F;
 
ioport   unsigned portFFFF;		




volatile unsigned int   * PIRQR0 	= (volatile unsigned int *) 0x7010;	
 
volatile unsigned int   * PIRQR1 	= (volatile unsigned int *) 0x7011;
 
volatile unsigned int   * PIRQR2 	= (volatile unsigned int *) 0x7012;
 
volatile unsigned int   * PIACKR0 	= (volatile unsigned int *) 0x7014;	
 
volatile unsigned int  * PIACKR1 	= (volatile unsigned int *) 0x7015;	
 
volatile unsigned int  * PIACKR2 	= (volatile unsigned int *) 0x7016;	
 
volatile unsigned int  * SCSR1 	= (volatile unsigned int *) 0x7018;
 
volatile unsigned int  * SCSR2 	= (volatile unsigned int *) 0x7019;
 
volatile unsigned int   * DIN 	= (volatile unsigned int *) 0x701C;	
 
volatile unsigned int   * PIVR 	= (volatile unsigned int *) 0x701E;	
 
 

volatile unsigned int  * WDCNTR 	= (volatile unsigned int *) 0x7023;
 
volatile unsigned int  * WDKEY 	= (volatile unsigned int *) 0x7025;	
 
volatile unsigned int  * WDCR 	= (volatile unsigned int *) 0x7029;
  

 

volatile unsigned int  * XINT1CR 	= (volatile unsigned int *) 0x7070;
 
volatile unsigned int  * XINT2CR 	= (volatile unsigned int *) 0x7071;	
 
 

volatile unsigned int  * MCRA 	= (volatile unsigned int *) 0x7090;	
  
volatile unsigned int  * MCRB 	= (volatile unsigned int *) 0x7092;	
 
volatile unsigned int  * MCRC 	= (volatile unsigned int *) 0x7094;	
 
volatile unsigned int  * IPSRA 	= (volatile unsigned int *) 0x7094;
 
volatile unsigned int  * IPSRB 	= (volatile unsigned int *) 0x7096;	
 
volatile unsigned int  * PADATDIR   = (volatile unsigned int *) 0x7098;	
  
volatile unsigned int  * PBDATDIR	= (volatile unsigned int *) 0x709A;	
 
volatile unsigned int  * PCDATDIR	= (volatile unsigned int *) 0x709C;	
 
volatile unsigned int  * PDDATDIR	= (volatile unsigned int *) 0x709E;
 
volatile unsigned int  * PEDATDIR	= (volatile unsigned int *) 0x7095;	
  
volatile unsigned int  * PFDATDIR	= (volatile unsigned int *) 0x7096;
   
 

volatile unsigned int   * ADCTRL1 	= (volatile unsigned int *) 0x70A0;	
 
volatile unsigned int   * ADCTRL2 	= (volatile unsigned int *) 0x70A1;	
  
volatile unsigned int   * MAXCONV 	= (volatile unsigned int *) 0x70A2;	
  
volatile unsigned int   * CHSELSEQ1  = (volatile unsigned int *) 0x70A3;	
  
volatile unsigned int   * CHSELSEQ2  = (volatile unsigned int *) 0x70A4;	
 
volatile unsigned int   * CHSELSEQ3  = (volatile unsigned int *) 0x70A5;	
 
volatile unsigned int   * CHSELSEQ4   = (volatile unsigned int *) 0x70A6;	
  
volatile unsigned int  * AUTO_SEQ_SR  = (volatile unsigned int *) 0x70A7;
  
volatile unsigned int  * RESULT0     = (volatile unsigned int *) 0x70A8;	
  
volatile unsigned int  * RESULT1 	= (volatile unsigned int *) 0x70A9;	
  
volatile unsigned int  * RESULT2 	= (volatile unsigned int *) 0x70AA;	
   
volatile unsigned int  * RESULT3 	= (volatile unsigned int *) 0x70AB;	
  
volatile unsigned int  * RESULT4 	= (volatile unsigned int *) 0x70AC;	
 
volatile unsigned int  * RESULT5 	= (volatile unsigned int *) 0x70AD;	
  
volatile unsigned int * RESULT6 	= (volatile unsigned int *) 0x70AE;
  
volatile unsigned int * RESULT7 	= (volatile unsigned int *) 0x70AF;	
  
volatile unsigned int * RESULT8 	= (volatile unsigned int *) 0x70B0;	
 
volatile unsigned int * RESULT9 	= (volatile unsigned int *) 0x70B1;
  
volatile unsigned int * RESULT10    = (volatile unsigned int *) 0x70B2;
 
volatile unsigned int * RESULT11	= (volatile unsigned int *) 0x70B3;	
  
volatile unsigned int * RESULT12	= (volatile unsigned int *) 0x70B4;	
  
volatile unsigned int * RESULT13	= (volatile unsigned int *) 0x70B5;
  
volatile unsigned int * RESULT14	= (volatile unsigned int *) 0x70B6;	
  
volatile unsigned int * RESULT15	= (volatile unsigned int *) 0x70B7;
 
volatile unsigned int * CALIBRATION = (volatile unsigned int *) 0x70B8;	
 

 

volatile unsigned int  * GPTCONA    = (volatile unsigned int *) 0x7400;	
 
volatile unsigned int  * T1CNT 	= (volatile unsigned int *) 0x7401;	
 
volatile unsigned int  * T1CMP 	= (volatile unsigned int *) 0x7402;	
 
volatile unsigned int  * T1PER 	= (volatile unsigned int *) 0x7403;	
 
volatile unsigned int  * T1CON 	= (volatile unsigned int *) 0x7404;	
 
volatile unsigned int  * T2CNT 	= (volatile unsigned int *) 0x7405;	
 
volatile unsigned int  * T2CMP 	= (volatile unsigned int *) 0x7406;	
 
volatile unsigned int  * T2PER 	= (volatile unsigned int *) 0x7407;	
 
volatile unsigned int  * T2CON 	= (volatile unsigned int *) 0x7408;	
 
volatile unsigned int  * COMCONA 	= (volatile unsigned int *) 0x7411;	
 
volatile unsigned int  * ACTRA 	= (volatile unsigned int *) 0x7413;	
 
volatile unsigned int  * DBTCONA 	= (volatile unsigned int *) 0x7415;	
 
volatile unsigned int * CMPR1 	= (volatile unsigned int *) 0x7417;	
 
volatile unsigned int * CMPR2 	= (volatile unsigned int *) 0x7418;	
 
volatile unsigned int * CMPR3 	= (volatile unsigned int *) 0x7419;	
 
volatile unsigned int * CAPCONA 	= (volatile unsigned int *) 0x7420;	
 
volatile unsigned int * CAPFIFOA	= (volatile unsigned int *) 0x7422;	
 
volatile unsigned int * CAP1FIFO	= (volatile unsigned int *) 0x7423;	
 
volatile unsigned int * CAP2FIFO	= (volatile unsigned int *) 0x7424;	
 
volatile unsigned int * CAP3FIFO	= (volatile unsigned int *) 0x7425;	
 
volatile unsigned int * CAP1FBOT	= (volatile unsigned int *) 0x7427;	
 
volatile unsigned int * CAP2FBOT	= (volatile unsigned int *) 0x7428;	
 
volatile unsigned int * CAP3FBOT    = (volatile unsigned int *) 0x7429;	 
 
volatile unsigned int * EVAIMRA	= (volatile unsigned int *) 0x742C;	
 
volatile unsigned int * EVAIMRB	= (volatile unsigned int *) 0x742D;	
 
volatile unsigned int * EVAIMRC	= (volatile unsigned int *) 0x742E;	
 
volatile unsigned int  * EVAIFRA	= (volatile unsigned int *) 0x742F;	
 
volatile unsigned int  * EVAIFRB	= (volatile unsigned int *) 0x7430;	
 
volatile unsigned int  * EVAIFRC	= (volatile unsigned int *) 0x7431;	
 
 

volatile unsigned int  * GPTCONB 	= (volatile unsigned int *) 0x7500;	
 
volatile unsigned int  * T3CNT 	= (volatile unsigned int *) 0x7501;	
 
volatile unsigned int  * T3CMP 	= (volatile unsigned int *) 0x7502;	
 
volatile unsigned int  * T3PER 	= (volatile unsigned int *) 0x7503;	
 
volatile unsigned int   * T3CON 	= (volatile unsigned int *) 0x7504;	
 
volatile unsigned int   * T4CNT 	= (volatile unsigned int *) 0x7505;	
 
volatile unsigned int   * T4CMP 	= (volatile unsigned int *) 0x7506;	
 
volatile unsigned int    * T4PER 	= (volatile unsigned int *) 0x7507;	
 
volatile unsigned int    * T4CON 	= (volatile unsigned int *) 0x7508;	
 
volatile unsigned int    * COMCONB 	= (volatile unsigned int *) 0x7511;
 
volatile unsigned int    * ACTRB 	= (volatile unsigned int *) 0x7513;	
 
volatile unsigned int    * DBTCONB 	= (volatile unsigned int *) 0x7515;	
 
volatile unsigned int    * CMPR4 	= (volatile unsigned int *) 0x7517;	
 
volatile unsigned int    * CMPR5 	= (volatile unsigned int *) 0x7518;	
 
volatile unsigned int    * CMPR6 	= (volatile unsigned int *) 0x7519;	
 
volatile unsigned int    * CAPCONB 	= (volatile unsigned int *) 0x7520;	
 
volatile unsigned int    * CAPFIFOB	= (volatile unsigned int *) 0x7522;	
 
volatile unsigned int    * CAP4FIFO	= (volatile unsigned int *) 0x7523;	
 
volatile unsigned int    * CAP5FIFO	= (volatile unsigned int *) 0x7524;	
 
volatile unsigned int   * CAP6FIFO	= (volatile unsigned int *) 0x7525;	
 
volatile unsigned int   * CAP4FBOT	= (volatile unsigned int *) 0x7527;
  
volatile unsigned int   * CAP5FBOT	= (volatile unsigned int *) 0x7528;	
  
volatile unsigned int   * CAP6FBOT  = (volatile unsigned int *) 0x7529;	
  
volatile unsigned int   * EVBIMRA	= (volatile unsigned int *) 0x752C;	
 
volatile unsigned int   * EVBIMRB	= (volatile unsigned int *) 0x752D;	
 
volatile unsigned int   * EVBIMRC	= (volatile unsigned int *) 0x752E;	
 
volatile unsigned int   * EVBIFRA	= (volatile unsigned int *) 0x752F;	
 
volatile unsigned int   * EVBIFRB	= (volatile unsigned int *) 0x7530;	
 
volatile unsigned int   * EVBIFRC	= (volatile unsigned int *) 0x7531;	
 
 
#line 13 "ProBridge.C"
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 WaitPolarChange()
{   int DelayOfAs;
	int BullCapacitorPolar;   
	*PEDATDIR=*PEDATDIR&0x0FF00;; 
	*EVAIFRA=*EVAIFRA|0x0080; 
	*T2PER=500+800;
	*T2CMP=800;
	*T2CNT=0x0000;
	*T2CON=*T2CON|0x0040;		 
	switch(AssVs) 
	{
		case 7: 
		{   
			for(DelayOfAs=3000;DelayOfAs>0;DelayOfAs--)
			{
				DelayOfAs=DelayOfAs;
			}
			BullCapacitorPolar=GetCapacitorPolar();
			if(BullCapacitorPolar!=0)
			{
				ReportERR();
			}
			break;
		}
		case 8:
		{
			for(DelayOfAs=3000;DelayOfAs>0;DelayOfAs--)
			{
				DelayOfAs=DelayOfAs;
			} 
			BullCapacitorPolar=GetCapacitorPolar();
			if(BullCapacitorPolar!=1)
			{
				ReportERR();
			}
			break;
		} 
	}
}
void interrupt FatalERR()
{
	int bJudgeProtect=0,Int_PIVR;
	Int_PIVR=*PIVR;
	if(Int_PIVR==0x0020)
	{
		while(1)
		{
			*PADATDIR=*PADATDIR&0x0FF00;;
			*PBDATDIR=*PBDATDIR&0x0FF00;;
			*PEDATDIR=*PEDATDIR&0x0FF00;;
			*PFDATDIR=*PFDATDIR&0x0FF00;;
			bJudgeProtect=1;
		}
	}
	else
		return;
}
void  Sys_initial()
{
	asm(" setc SXM ");
	asm(" clrc OVM ");
	asm(" clrc CNF ");
	*IFR=0x0FFFF;
	*WDCR=0x00E8;
	*SCSR1=0x81FE;
	*IMR=0x0001;        
 
}
void IO_initial()
{
	*MCRA=*MCRA&0x0C000;  
	*MCRC=*MCRC&0x8000; 
	*PADATDIR=*PADATDIR|0x0C700;
	*PADATDIR=*PADATDIR&0x0C700; 
	*PBDATDIR=*PBDATDIR|0x0F00;
	*PBDATDIR=*PBDATDIR&0x0F00; 
	*PEDATDIR=*PEDATDIR|0x7F00;
	*PEDATDIR=*PEDATDIR&0x7F00; 		
}
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; 
	*MAXCONV=0x07;
	*CHSELSEQ1=0x1111;                
	*CHSELSEQ2=0x1111;
	*ADCTRL2=*ADCTRL2|0x4000; 
	*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>50000)
	{
		result=50000;
	}
	else if(result<5200)
	{
		result=5200;
	}
	*ADCTRL2=*ADCTRL2|0x4200; 
	return(result);	
}
	 

⌨️ 快捷键说明

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