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

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

?? dc_dc_pwm.c

?? dsp2812的源程序
?? C
字號:

//###########################################################################
//
// FILE:	DC_DC_PWM.c
//
// TITLE:	DC/DC PWM control program.//
//
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  0.10| 27 Jan 2004 | ZYG  | test program, with attach pulses
//  0.30| 22 Feb 2004 | ZYG  | new pwm mode, without attach pulse 
//###########################################################################

// Step 0.  Include required header files
         // DSP28_Device.h: device specific definitions #include statements for
         // all of the peripheral .h definition files.
         // DSP28_Example.h is specific for the given example.  

#include "DSP28_Device.h"
#include "ext_inf.h"

#define KeyPressedVoltage 2000
#define KeyPressCountLimit 20
#define	OffsetHighLimit	850
#define	OffsetLowLimit	-850

#define AttPulseInit  100

#define	OffsetIncrease	1
#define	OffsetDecrease	2
#define	OffsetZero		3
#define	AttPulseToggle	4

#define FlashSlow 50
#define FlashFast 15

void InitEv_1(void);
void LedFlash(void);
void KeyHandle(void);
void GetKeyValue(void);
void OffsetZeroHandle(void);

interrupt void T1Underflow_ISR(void);
interrupt void T1Period_ISR(void);
interrupt void T1Match_ISR(void);

interrupt void T3Underflow_ISR(void);
interrupt void T3Period_ISR(void);

interrupt void Timer2_ISR(void);
interrupt void ADC_ISR(void);

int i, Period, Offset, OffsetZeroFlag=0, LedFlag, LedCount=0;
int KeyValue, OldKeyValue, KeyPressCount=0, KeyHold=0;
int KeyHandleCount=0;
int ADCISRFlag=0, Syn_Flag=0;
int	AttPulse;
int LedCountLimit;

unsigned int ADCResult[4];

int tmp;
void main(void)
{
	/* Initialize system */
	InitSysCtrl();	

	/* Disable all interrupts */
	DINT;			
	IER = 0x0000;
	IFR = 0x0000;
	
	InitPieCtrl();
	
	/* Initialize PIE vector table */
	InitPieVectTable();	
	
	EALLOW;	
	PieVectTable.T1UFINT = &T1Underflow_ISR;
	PieVectTable.T1PINT = &T1Period_ISR;
	PieVectTable.T1CINT = &T1Match_ISR;
	
	PieVectTable.T3UFINT = &T3Underflow_ISR;
	PieVectTable.T3PINT = &T3Period_ISR;
	
	PieVectTable.TINT2 = &Timer2_ISR;
	PieVectTable.ADCINT = &ADC_ISR;
	EDIS; 
	
	/* Initialize EV*/
//	InitEv();
	
	InitCpuTimers();	
	InitEv_1();
	InitAdc();
	
	
	ConfigCpuTimer(&CpuTimer2, 150, 20000);	
 	StartCpuTimer2();
 	
 	AttPulse = AttPulseInit;
	
	EvaRegs.EVAIFRA.all = 0xffff;	//clear all suspend interrupts

  	EvaRegs.EVAIMRA.bit.T1UFINT = 1;
	EvaRegs.EVAIMRA.bit.T1CINT = 1;
	EvaRegs.EVAIMRA.bit.T1PINT = 1;
		
	PieCtrl.PIEIER1.bit.INTx6 = 1;
	
	PieCtrl.PIEIER2.bit.INTx4 = 1;	// T1PINT
	PieCtrl.PIEIER2.bit.INTx5 = 1;	// T1CINT
	PieCtrl.PIEIER2.bit.INTx6 = 1;	// T1UFINT
	
	Period = 3000;
	Offset = 000;
		
	EvaRegs.CMPR1 = Period / 2;
	EvaRegs.CMPR2 = Period / 2;
	EvaRegs.CMPR3 = Period / 2;	
		
	EvbRegs.CMPR4 = AttPulse;
	EvbRegs.CMPR5 = Period - AttPulse;
	EvbRegs.CMPR6 = Period / 4;
	
	EvaRegs.T1CON.bit.TENABLE = 1;
	EvbRegs.T3CON.bit.TENABLE = 1;
	
	IER |= M_INT1;
	IER |= M_INT2;
	IER |= M_INT14;	
	
	EINT;
	ERTM;
	
	OldKeyValue = 0;
	
	OffsetZeroFlag = 0;
	
	LedCount = 0;
	LedCountLimit = FlashFast;
	
	for(;;)
	{
//		KickDog();
	LedFlash();
	if(ADCISRFlag)
		{
		ADCISRFlag = 0;			
		KeyHandle();
		OffsetZeroHandle();
		}
	}


} 	

void InitEv_1(void)
{
	EALLOW;
	GpioMuxRegs.GPAMUX.all = 0x00ff;
	GpioMuxRegs.GPBMUX.all = 0x00ff;
	EDIS;

//EVA
	
	EvaRegs.GPTCONA.all = 0x0876;		/* gp timer control register */

	EvaRegs.T1CNT = 0;					/* timer1 count is zero */
	EvaRegs.T1CON.all = 0x0802;			//
	EvaRegs.T1PR = Period;
	EvaRegs.T1CMPR = Period / 2;
		
	EvaRegs.T2CNT = Period / 2;
	EvaRegs.T2CON.all = 0x0887;
	EvaRegs.T2CMPR = Period / 2 + 200;
		
	EvaRegs.COMCONA.all = 0xa2e0;
	EvaRegs.ACTRA.all = 0x0666;
	
	EvaRegs.DBTCONA.all = 0x03ff;

//EVB

	EvbRegs.GPTCONB.all = 0x0879;		/* gp timer control register */

//	EvbRegs.T3CNT = 0;					/* timer1 count is zero */
	EvbRegs.T3CNT = Period;
	EvbRegs.T3CON.all = 0x0802;			//
	EvbRegs.T3PR = Period;
	EvbRegs.T3CMPR = Period / 2;
	
	EvbRegs.T4CNT = Period / 2;
	EvbRegs.T4CON.all = 0x0887;
	EvbRegs.T4CMPR = Period / 2 - 200;
	
	EvbRegs.COMCONB.all = 0xa2e0;
	EvbRegs.ACTRB.all = 0x0666;
			
	EvbRegs.DBTCONB.all = 0x03ff;		
}	

void LedFlash(void)
{
	if(LedCount >= LedCountLimit)
	{
		LedCount = 0;
		if(LedFlag == 0)
		{
			LedFlag = 1;
			*LED2 = 1;
		}
		else
		{
			LedFlag = 0;
			*LED2 = 0;
		}	
	}	
}


void KeyHandle(void)
{
	GetKeyValue();
	if(KeyValue == OldKeyValue)
	{
		if(KeyHold)
			switch(KeyValue)
				{
				case OffsetIncrease:
					if(Offset < OffsetHighLimit)
						Offset += 10;
					break;
						
				case OffsetDecrease:
					if(Offset > OffsetLowLimit)
						Offset -= 10;
					break;
						
				default:
					break;
			
				}
		}
	else
		{
			OldKeyValue = KeyValue;
			switch(KeyValue)
				{
				case OffsetIncrease:
					if(Offset < OffsetHighLimit)
						Offset+=10;
					break;
						
				case OffsetDecrease:
					if(Offset > OffsetLowLimit)
						Offset-=10;
					break;
					
				case OffsetZero:
					OffsetZeroFlag = 1;
					break;	
					
				case AttPulseToggle:
					if(AttPulse)
						{
						AttPulse = 0;
						LedCountLimit = FlashSlow;
						}
					else
						{
						AttPulse = AttPulseInit;
						LedCountLimit = FlashFast;
						}
								
					EvbRegs.CMPR4 = AttPulse;
					EvbRegs.CMPR5 = Period - AttPulse;
					break;
						
				default:
					break;		
				}	
		}		
}

void GetKeyValue(void)
	{

		{
//		ADCISRFlag = 0;
		KeyValue = 0;
		
		for(i=0;i<4;i++)
			{
			if(ADCResult[i]<KeyPressedVoltage)
				{
				if(KeyPressCount < KeyPressCountLimit) 
					KeyPressCount++;
				else
					KeyHold = 1;
					
				KeyValue = i + 1;
				}
			}
		
		
		if(!KeyValue)
			{					
			KeyPressCount = 0;
			KeyHold = 0;
			KeyValue = 0;
			}
		}	
	}


void OffsetZeroHandle(void)
{
if(OffsetZeroFlag)
	{
	if(abs(Offset) < 10)
		{
		Offset = 0;
		OffsetZeroFlag = 0;
		}
	else
		{
		if(Offset > 0)
			Offset -= 10;
		else
			Offset += 10;
		}
	}
}
					
/********************************
*								*
* Interrupt Service Routines	*
*								*
********************************/


interrupt void T1Underflow_ISR(void)
{
	
	EvaRegs.EVAIFRA.bit.T1UFINT = 1;
	PieCtrl.PIEACK.bit.ACK2 = 1;
	
	if(Offset < 0)
		{
		EvaRegs.CMPR1 = Period - 1 + Offset;
//		EvaRegs.CMPR2 = Period/2 + Offset;
		}
	else
		{
		EvaRegs.CMPR1 = Period - 1;
//		EvaRegs.CMPR2 = Period/2 + Offset;
		}		

	Syn_Flag = 1;	
		
//	EvbRegs.T3CNT = 0;
}

interrupt void T1Period_ISR(void) 
{
	EvaRegs.EVAIFRA.bit.T1PINT = 1;
	PieCtrl.PIEACK.bit.ACK2 = 1;

	EvbRegs.T3CNT = 0;		// Syn		
	
	if(Offset < 0)
		{
		EvaRegs.CMPR1 =  1 - Offset;
//		EvaRegs.CMPR2 = Period/2 + Offset;
		}
	else
		{
		EvaRegs.CMPR1 = 1;
//		EvaRegs.CMPR2 = Period/2 + Offset;
		}

}


interrupt void T1Match_ISR(void)
{
	EvaRegs.EVAIFRA.bit.T1CINT = 1;
	PieCtrl.PIEACK.bit.ACK2 = 1;
	tmp = EvaRegs.T2CNT;	

	if(Syn_Flag == 1)
	{
		Syn_Flag = 0;
		EvaRegs.T2CNT = 0;
		EvbRegs.T4CNT = 0;
	}
}



interrupt void T3Underflow_ISR(void)
	{
	EvbRegs.EVBIFRA.bit.T3UFINT = 1;
	PieCtrl.PIEACK.bit.ACK4 = 1;
	
	if(Offset < 0)
		EvbRegs.CMPR4 = 1;
	else
		EvbRegs.CMPR4 = 1 + Offset;

	}



interrupt void T3Period_ISR(void) 
	{
	EvbRegs.EVBIFRA.bit.T3PINT = 1;
	PieCtrl.PIEACK.bit.ACK4 = 1;

	if(Offset < 0)
		EvbRegs.CMPR4 = Period - 1;
	else
		EvbRegs.CMPR4 = Period - 1 - Offset;

	}

	
interrupt void Timer2_ISR(void)
{

	if(AdcRegs.ADC_ST_FLAG.bit.SEQ1_BSY==0)
		{			

			AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
			
			LedCount++;
			
		}
}


interrupt void ADC_ISR(void)
{

	PieCtrl.PIEACK.bit.ACK1 = 1;

	ADCResult[0] = AdcRegs.RESULT0;
	ADCResult[1] = AdcRegs.RESULT2;
	ADCResult[2] = AdcRegs.RESULT4;
	ADCResult[3] = AdcRegs.RESULT6;
	
	AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
	//	AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
	
	ADCISRFlag = 1;	
}
//===========================================================================
// No more.
//===========================================================================

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清视频中文字幕| 亚洲一区在线播放| 欧美日韩精品一区二区| 久久97超碰国产精品超碰| 亚洲男人的天堂av| 久久午夜色播影院免费高清| 欧美性色综合网| 国产精品69毛片高清亚洲| 亚洲超碰精品一区二区| 日韩一区日韩二区| 久久精品综合网| 678五月天丁香亚洲综合网| 91在线视频免费观看| 六月婷婷色综合| 亚洲国产精品久久人人爱 | 欧美理论片在线| 成人午夜视频福利| 加勒比av一区二区| 视频在线观看国产精品| 亚洲在线视频一区| 亚洲女与黑人做爰| 中文字幕中文字幕中文字幕亚洲无线| 欧美精品乱码久久久久久按摩| 91小视频免费看| 成人丝袜视频网| 国产精品一区免费视频| 免费精品99久久国产综合精品| 亚洲高清在线精品| 亚洲一二三四区不卡| 亚洲精品你懂的| 国产精品毛片久久久久久久| 国产三级久久久| 久久精品一区蜜桃臀影院| 精品国产乱码久久久久久夜甘婷婷| 4438成人网| 5月丁香婷婷综合| 成人丝袜18视频在线观看| 亚洲国产欧美在线| 亚洲欧洲99久久| 中文在线一区二区| 中文字幕 久热精品 视频在线 | 一本久久a久久免费精品不卡| 国产精品一区二区在线看| 国产做a爰片久久毛片| 久久99久久久久| 精品一区二区国语对白| 久久97超碰色| 国产精品自产自拍| 成人18视频日本| 99re6这里只有精品视频在线观看| jizz一区二区| 色999日韩国产欧美一区二区| 色老汉av一区二区三区| 欧美日韩综合一区| 欧美一级在线免费| 久久久综合网站| 中文字幕人成不卡一区| 亚洲激情在线激情| 午夜精品视频一区| 日本中文一区二区三区| 国产另类ts人妖一区二区| 成人高清av在线| 欧美视频三区在线播放| 精品日韩一区二区三区免费视频| 久久蜜桃av一区二区天堂| 国产精品免费av| 亚洲国产综合91精品麻豆| 日韩高清一级片| 国产成人精品免费一区二区| 91尤物视频在线观看| 欧美精选一区二区| 久久婷婷一区二区三区| 亚洲日本中文字幕区| 性做久久久久久免费观看欧美| 乱一区二区av| 97精品超碰一区二区三区| 欧美绝品在线观看成人午夜影视| 日韩精品中文字幕在线一区| 18欧美乱大交hd1984| 日韩精品电影一区亚洲| 国产精品1区2区3区| 欧美性大战久久久久久久| wwwwww.欧美系列| 一区二区三区四区五区视频在线观看| 三级久久三级久久久| 大桥未久av一区二区三区中文| 91福利在线观看| 久久午夜色播影院免费高清 | 亚洲欧美日韩中文字幕一区二区三区| 亚洲制服丝袜av| 国产xxx精品视频大全| 精品视频免费看| 国产色产综合色产在线视频| 亚洲大片一区二区三区| 成人精品国产一区二区4080| 91精品国产一区二区| 成人欧美一区二区三区1314| 免费人成在线不卡| 日本高清不卡视频| 国产色91在线| 秋霞影院一区二区| 日本乱人伦一区| 国产欧美日韩在线| 蜜桃视频第一区免费观看| 一本色道久久综合亚洲91| 国产欧美日韩综合精品一区二区 | 国产一区二区成人久久免费影院| 欧美伊人久久久久久久久影院| 久久久不卡影院| 免费在线看一区| 在线亚洲欧美专区二区| 国产精品日产欧美久久久久| 经典三级一区二区| 在线成人高清不卡| 一区二区三区四区在线播放| www.99精品| 国产欧美精品在线观看| 国产一区三区三区| 2023国产精品自拍| 久久99国内精品| 欧美一区二区精品在线| 亚洲电影第三页| 欧美少妇性性性| 一级精品视频在线观看宜春院| 成人午夜视频在线观看| 国产欧美一区二区精品性| 精品一区二区成人精品| 精品捆绑美女sm三区| 免费在线观看日韩欧美| 欧美日韩三级一区| 亚州成人在线电影| 欧美日韩一卡二卡| 日韩高清欧美激情| 日韩一区二区电影| 免费不卡在线视频| 日韩欧美另类在线| 九九九精品视频| 亚洲精品一区二区三区福利| 精品午夜久久福利影院| 26uuu精品一区二区| 国产精品一区二区在线播放 | 精品国产一区二区三区av性色| 蜜桃在线一区二区三区| 日韩免费成人网| 国产精品综合二区| 欧美激情一区二区三区| 成人aa视频在线观看| 亚洲六月丁香色婷婷综合久久| 色综合久久中文综合久久牛| 亚洲精品五月天| 欧美三级在线视频| 视频一区中文字幕| 精品嫩草影院久久| 国产999精品久久久久久| 国产精品福利一区| 日本韩国一区二区三区视频| 亚洲国产日韩在线一区模特| 欧美美女黄视频| 国产最新精品精品你懂的| 国产日韩欧美不卡| 91国内精品野花午夜精品| 日韩电影免费在线看| 久久久国产精品午夜一区ai换脸 | 日韩欧美激情一区| 国产福利91精品一区| 亚洲免费在线视频| 欧美一区在线视频| 国产成人午夜高潮毛片| 亚洲男女一区二区三区| 日韩免费观看高清完整版在线观看| 久久97超碰色| 亚洲精品免费看| 欧美成人video| 色噜噜狠狠成人中文综合| 久国产精品韩国三级视频| 国产精品人成在线观看免费| 欧美色欧美亚洲另类二区| 精品一区二区三区久久久| 亚洲欧洲av一区二区三区久久| 91精品国产综合久久久久久久| 国产电影一区二区三区| 亚洲一区二区欧美日韩 | 午夜久久久久久久久| 久久久久国产精品麻豆ai换脸| 色8久久人人97超碰香蕉987| 美女脱光内衣内裤视频久久影院| 国产精品高潮久久久久无| 欧美一二三四区在线| 99re这里只有精品首页| 蜜臀精品久久久久久蜜臀 | 国产精品不卡在线| 91精品国产综合久久香蕉麻豆| www.亚洲色图| 精彩视频一区二区三区| 亚洲成人免费影院| 中文字幕永久在线不卡| 欧美精品一区二| 777xxx欧美| 色偷偷久久人人79超碰人人澡| 国产一区二区在线看|