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

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

?? drv_timer0.c

?? Enhanced LPC213x device drivers,tools ADS1.2
?? C
字號:
#include "config_60_61.h"
#include "config_GD61.h"
#include "config_GD60.h"
#include "include_GD60.h"
#include "include_GD61.h"

volatile uint16 mSecondTick;			// for delay Function
volatile uint16 U1_ModeSwitchDly = MODE_SWITCH_Dly;
volatile uint16 U2_ModeSwitchDly = MODE_SWITCH_Dly*3/2;
volatile uint16 MP_FailedmSecondCnt;	// for main power failed detector
volatile uint16 CommandSendTimer;
extern volatile uint8 GetCurrentDataTick;
extern volatile uint8 U1U2_ReadyTimer ;	// DSP get ready time

//extern uint16  DO_Buffer;	
extern uint16 DO_HoldingTime;
extern volatile uint16 DO_ResTime[MAX_DO_CHANNEL];

/////////////////////////////////////////////////////////////////////////
int32 CurInputA_II;				// after calibration
int32 CurInputA_UU;
int32 CurInputA_WP;
int32 CurInputA_QP;
int32 CurInputA_SP;
int32 CurInputA_PF;				// PF = P/S

int32 CurInputB_II;				// after calibration
int32 CurInputB_UU;
int32 CurInputB_WP;
int32 CurInputB_QP;
int32 CurInputB_SP;
int32 CurInputB_PF;				// PF = P/S

int32 CurInputC_II;				// after calibration
int32 CurInputC_UU;
int32 CurInputC_WP;
int32 CurInputC_QP;
int32 CurInputC_SP;
int32 CurInputC_PF;				// PF = P/S

/////////////////////////////////////////////////////////////////////////

int32 CurInput_II;				// after calibration
int32 CurInput_UU;
int32 CurInput_WP;
int32 CurInput_QP;
int32 CurInput_SP;
int32 CurInput_PF;				// PF = P/S

int32 CurInputULevel;
int32 CurInputILevel;

int32 CurOutput_I;
int32 CurOutput_U;
int32 CurOutput_WP;
int32 CurOutput_QP;
int32 CurOutput_SP;
int32 CurOutput_PF;

int32 CurOutputULevel;
int32 CurOutputILevel;

extern uint16 Alarm_I_Delta;
extern uint16 Alarm_I_Standard;
extern uint16 Alarm_U_Standard;

extern uint8 Unit1_Addr;
extern uint8 Unit2_Addr;

extern volatile uint16 LD_AlarmCounter;
extern volatile uint16 LD_AlarmEnTimer;
extern volatile uint16 OutReadyTimer;

//volatile uint16 mSecondTick;			// for delay Function
volatile uint32 PPPmSecondTick;
volatile uint8  r_waittingTime0;
volatile uint8  r_waittingTime1;

/////////////////////////////////////////////////////////////////////////////	
void DelayMS_(uint16 dly);
void __irq IRQ_Timer0Serving (void);
void TimerInitialize(void);

void GetCurrent_IUPQRLC(void);
void ADC_Init(void);
void SetDO_ResTime(uint8 do_channel);

/****************************************************************************
** 函數名稱 :DelayMS()		 ;delay 1 mil second 
** 函數功能 :長軟件延時
** 入口參數 :dly	延時參數,值越大,延時越久
** 出口參數 :無
****************************************************************************/
void DelayMS_(uint16 dly)
{
	mSecondTick=(dly+1);		//resolution is 1 mS
	while(mSecondTick>1);	
}

/****************************************************************************
** 函數名稱 :IRQ_Timer0Serving()
** 函數功能 :定時器0中斷服務程序,取反LED9控制口。
** 入口參數 :無
** 出口參數 :無
*****************************************************************************/
void __irq IRQ_Timer0Serving (void)
{
uint8 i;

	if(mSecondTick!=0)		mSecondTick--;	// ms running,for delay Function
	if(r_waittingTime0!=0) 	r_waittingTime0--;
	if(r_waittingTime1!=0) 	r_waittingTime1--;
	
	PPPmSecondTick++;
	
	if(CommandSendTimer!=0)	CommandSendTimer--;

////
	if(U1_ModeSwitchDly>0)	U1_ModeSwitchDly--;
	if(U2_ModeSwitchDly>0)	U2_ModeSwitchDly--;

////
	for(i=0;i<MAX_DO_CHANNEL;i++){
		if(DO_ResTime[i]>0)  DO_ResTime[i]--;
	}

////
#ifdef POWER_LOST_ALARM						//enable the counter for power detecting in pulse mode.
	if(MP_FailedmSecondCnt <= MAIN_P0WER_FAILED_MSECOND){	//power failed detecting in pulse mode.
		MP_FailedmSecondCnt++;		//power failed detector stop at (MAIN_P0WER_FAILED_MSECOND+1).
	}
#endif

////
	T0IR = 0x01;			/* 清除中斷標志*/
	VICVectAddr = 0x00;		/* 通知VIC中斷處理結束*/
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void TimerInitialize(void)
{
	IRQDisable();

/* 定時器0初始化 */
	T0TC   = 0;					/* 定時器設置為0						*/
	T0PR   = 0;					/* 時鐘不分頻							*/
	T0MCR  = 0x03;				/* 設置T0MR0匹配后復位T0TC,并產生中斷	*/
	T0MR0  = LPC_FPCLK /1000;	/* 1/1000秒鐘定時						*/
	T0TCR  = 0x01;				/* 啟動定時器							*/
	
/* 設置定時器0中斷IRQ */
	VICVectCntl5 = 0x20|INT_TIMER0;				/* 設置定時器0中斷通道分配最高優先級*/
	VICVectAddr5 = (uint32)IRQ_Timer0Serving;	/* 設置中斷服務程序地址*/
	VICIntEnable = 1<<INT_TIMER0;				/* 使能定時器0中斷*/

	IRQEnable();	
}

//////////////////////////////////////////////////////////////////////////
void ADC_Init(void)
{
	IRQDisable();
	
	PINSEL1=(PINSEL1&(~(0x03<<18)))|(1<<18);	// P0.25連接到AD0.4
	PINSEL1=(PINSEL1&(~(0x03<<20)))|(1<<20);	// P0.26連接到AD0.5

	PINSEL1=(PINSEL1&(~(0x03<<22)))|(1<<22);	// P0.27連接到AD0.0
	PINSEL1=(PINSEL1&(~(0x03<<24)))|(1<<24);	// P0.28連接到AD0.1
	
	PINSEL1=(PINSEL1&(~(0x03<<26)))|(1<<26);	// P0.29連接到AD0.2
	PINSEL1=(PINSEL1&(~(0x03<<28)))|(1<<28);	// P0.30連接到AD0.3

	PINSEL0=(PINSEL0&(~(0x03<< 8)))|(0x3<< 8);	// P0.04連接到AD0.6
	PINSEL0=(PINSEL0&(~(0x03<<10)))|(0x3<<10);	// P0.05連接到AD0.7

	IRQEnable();
}

////////////////////////////////////////////////////////////////////////	
//  int32 MB_Read_E_Data(uint8 channel,uint16 addr)
//	rIa rIb rIc rIt rUa rUb rUc rPa
//	rPb rPc rPt rQa rQb rQc rQt
// 	rSa rSb rSc rSt rPfa rPfb rPfc rPft
////////////////////////////////////////////////////////////////////////	
void GetCurrent_IUPQRLC(void)
{
#ifdef EN_LOAD_ALARM
static uint16 OverDeltaTimes=0;
#endif

		if((U1U2_ReadyTimer!=0)||(GetCurrentDataTick!=0)) return;
		GetCurrentDataTick=5;

		CurInputA_II = MB_Read_E_Data(Unit2_Addr,rIa);
		CurInputA_UU = MB_Read_E_Data(Unit2_Addr,rUa);
		CurInputA_WP = MB_Read_E_Data(Unit2_Addr,rPa);
		CurInputA_QP = MB_Read_E_Data(Unit2_Addr,rQa);
		CurInputA_SP = MB_Read_E_Data(Unit2_Addr,rSa);
		CurInputA_PF = MB_Read_E_Data(Unit2_Addr,rPfa);

////////////////////////////////////////////////////////////////////////	
////////////////////////////////////////////////////////////////////////	
		CurInputB_II = MB_Read_E_Data(Unit2_Addr,rIb);
		CurInputB_UU = MB_Read_E_Data(Unit2_Addr,rUb);
		CurInputB_WP = MB_Read_E_Data(Unit2_Addr,rPb);
		CurInputB_QP = MB_Read_E_Data(Unit2_Addr,rQb);
		CurInputB_SP = MB_Read_E_Data(Unit2_Addr,rSb);
		CurInputB_PF = MB_Read_E_Data(Unit2_Addr,rPfa);

////////////////////////////////////////////////////////////////////////		
////////////////////////////////////////////////////////////////////////	
		CurInputC_II = MB_Read_E_Data(Unit2_Addr,rIc);
		CurInputC_UU = MB_Read_E_Data(Unit2_Addr,rUc);
		CurInputC_WP = MB_Read_E_Data(Unit2_Addr,rPc);
		CurInputC_QP = MB_Read_E_Data(Unit2_Addr,rQc);
		CurInputC_SP = MB_Read_E_Data(Unit2_Addr,rSc);
		CurInputC_PF = MB_Read_E_Data(Unit2_Addr,rPfc);

////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
		if(CurInputA_WP<0) CurInputA_WP=-CurInputA_WP;
		if(CurInputA_QP<0) CurInputA_QP=-CurInputA_QP;
		if(CurInputA_PF<0) CurInputA_PF=-CurInputA_PF;

		if(CurInputB_WP<0) CurInputB_WP=-CurInputB_WP;
		if(CurInputB_QP<0) CurInputB_QP=-CurInputB_QP;
		if(CurInputB_PF<0) CurInputB_PF=-CurInputB_PF;

		if(CurInputC_WP<0) CurInputC_WP=-CurInputC_WP;
		if(CurInputC_QP<0) CurInputC_QP=-CurInputC_QP;
		if(CurInputC_PF<0) CurInputC_PF=-CurInputC_PF;

	
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
	
		CurInput_II = CurInputA_II;		CurInput_UU = CurInputA_UU;
		CurInput_WP = CurInputA_WP;		CurInput_QP = CurInputA_QP;
		CurInput_SP = CurInputA_SP;		CurInput_PF = CurInputA_PF;
		CurInputULevel++;				CurInputILevel++;

		CurOutput_I  = CurInputA_II;	CurOutput_U  = CurInputA_UU;
		CurOutput_WP = CurInputA_WP;	CurOutput_QP = CurInputA_QP;
		CurOutput_SP = CurInputA_SP;	CurOutput_PF = CurInputA_PF;
		CurOutputULevel++;				CurOutputILevel++;
		
//////////////////////////////////////////////////////////////////////////////
//// alarm bits setting area,	//uint16 StateValue;
//	if(((StateValue&LIGHT_ON_FLG_BIT)==LIGHT_ON_FLG_BIT)&&(OutReadyTimer==0)){
	if(OutReadyTimer==0){

//   attach light state; SP>200/10=20VA, set LIGHT_ON_FLG_BIT.
		if(CurInput_SP >200){	StateValue = StateValue|  LIGHT_ON_FLG_BIT ;}
		else{					StateValue = StateValue&(~LIGHT_ON_FLG_BIT);}
//   I alarm
		if(CurInput_II < I_ALARM_LOW_LIMIT){	StateValue = StateValue|  IIII__ALARM_TYPE; }
		else{									StateValue = StateValue&(~IIII__ALARM_TYPE);}
//   U alarm
		if(CurInput_UU < U_ALARM_LOW_LIMIT){	StateValue = StateValue|  UUUU__ALARM_TYPE; }
		else{									StateValue = StateValue&(~UUUU__ALARM_TYPE);}
//   PF alarm
		if(CurInput_PF < PF_ALARM_LOW_LIMIT){	StateValue = StateValue|  PFPF__ALARM_TYPE; }
		else{									StateValue = StateValue&(~PFPF__ALARM_TYPE);}

//   load alarm	
//
#ifdef EN_LOAD_ALARM
		if((CurOutput_U < (Alarm_U_Standard+100))&&		//Alarm_U_Standard -/+ 10.0V
		   (CurOutput_U > (Alarm_U_Standard-100))){

			if (((uint16)CurOutput_I < (Alarm_I_Standard-Alarm_I_Delta))||
				((uint16)CurOutput_I > (Alarm_I_Standard+Alarm_I_Delta))){

				if(OverDeltaTimes==0) DB_SendString("System go into AlarmState");
				if(OverDeltaTimes<=OVER_DELTA_TRIGGER_LEVEL) OverDeltaTimes++;
			   	if(OverDeltaTimes>=OVER_DELTA_TRIGGER_LEVEL) StateValue=StateValue|LOAD__ALARM_TYPE;
			}else{
		
				if(OverDeltaTimes!=0) DB_SendString("System recover from AlarmState");
				OverDeltaTimes=0;
				StateValue = StateValue&(~LOAD__ALARM_TYPE);
			}
		}
#else
		StateValue = StateValue&(~LOAD__ALARM_TYPE);
#endif
	}

}

///////////////////////////////////////////////////////////////////////////
void SetDO_ResTime(uint8 do_channel)
{

//char dbuff[100];
/*
	sprintf(dbuff,"SetDO_ResTime(), channel=%d",channel); 
	DB_SendString(dbuff);
*/
	if(do_channel<MAX_DO_CHANNEL){

		if(DO_ResTime[do_channel]==0){
			DO_ResTime[do_channel]=DO_HoldingTime;
		}

	}else{

		DB_SendString("SetDO_ResTime: DO channel out of range.");

	}

/*
	sprintf(dbuff, "DO_ResTime[0]=%d,DO_ResTime[1]=%d,DO_ResTime[2]=%d,DO_ResTime[3]=%d",
					DO_ResTime[0],   DO_ResTime[1],   DO_ResTime[2],   DO_ResTime[3]); 
	DB_SendString(dbuff);
*/
}

//////////////////////////////////////////////////////////////////////////
// end of file //

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色狠狠色综合系列| 亚洲天堂免费看| 在线成人午夜影院| 欧美在线免费观看亚洲| 色婷婷激情久久| 欧美美女bb生活片| 在线播放欧美女士性生活| 欧美伊人久久大香线蕉综合69| 欧洲国产伦久久久久久久| 欧美在线观看视频在线| 欧美日韩午夜在线视频| 欧美另类z0zxhd电影| 日本韩国精品在线| 欧美日韩国产经典色站一区二区三区| 99久久99久久久精品齐齐| 粉嫩av一区二区三区粉嫩| 国产v综合v亚洲欧| 国产综合成人久久大片91| 久久国产精品99久久久久久老狼 | 91精品欧美久久久久久动漫 | 夜夜爽夜夜爽精品视频| 亚洲一区二区在线免费观看视频 | 欧美理论片在线| 欧美精品久久天天躁| 欧美日韩久久久一区| 欧美日韩国产一级| 欧美一区二区三区在线看 | 美日韩一级片在线观看| 蜜桃视频第一区免费观看| 日本成人在线网站| 看电视剧不卡顿的网站| 狠狠色丁香久久婷婷综合_中| 精品一区二区三区在线播放| 国产精品一级片在线观看| 国产999精品久久久久久| 成人激情免费电影网址| 在线观看91视频| 日韩三区在线观看| 欧美国产精品中文字幕| 一区在线观看视频| 亚洲午夜激情网站| 久久成人精品无人区| 国产九色sp调教91| 在线视频国产一区| 日韩欧美成人一区| 亚洲三级理论片| 美女视频一区在线观看| 成人小视频在线观看| 欧美日韩精品三区| 久久久久国产精品麻豆ai换脸 | 国产精品18久久久久| 成人动漫精品一区二区| 欧美日韩视频一区二区| 久久综合久久综合久久综合| **网站欧美大片在线观看| 五月天亚洲精品| 国产成都精品91一区二区三| 欧美三区免费完整视频在线观看| 精品国产一区二区三区忘忧草| 国产欧美日韩久久| 卡一卡二国产精品| 色欧美片视频在线观看在线视频| 日韩欧美黄色影院| 综合久久国产九一剧情麻豆| 韩国中文字幕2020精品| 欧美日韩一区三区| 最新日韩av在线| 国内精品国产成人| 91麻豆精品国产91久久久| 一区精品在线播放| 国产精品中文欧美| 欧美美女喷水视频| 一区二区理论电影在线观看| 91影视在线播放| 精品va天堂亚洲国产| 亚洲国产欧美在线| 99re8在线精品视频免费播放| www激情久久| 精品一区二区三区日韩| 欧美午夜影院一区| 中文字幕亚洲欧美在线不卡| 国产成人亚洲精品狼色在线 | 日韩一区精品字幕| 欧美色图在线观看| 一区二区三区中文字幕精品精品| 成人午夜精品一区二区三区| 久久久久久99久久久精品网站| 日韩av一区二区在线影视| 国产成人精品免费在线| 欧美va亚洲va在线观看蝴蝶网| 亚洲图片欧美一区| 91视频观看视频| 中文字幕五月欧美| 不卡的av网站| ㊣最新国产の精品bt伙计久久| 成人午夜碰碰视频| 中文字幕一区二区三区在线播放 | 蜜桃传媒麻豆第一区在线观看| 欧美日韩成人综合| 免费亚洲电影在线| 精品日韩99亚洲| 国产精品一区不卡| 国产精品美女久久久久久久久久久 | 精品国产露脸精彩对白| 精品综合免费视频观看| 精品嫩草影院久久| 国产成人综合自拍| 国产精品免费观看视频| 色狠狠一区二区| 亚洲成va人在线观看| 欧美一级精品在线| 国产伦精品一区二区三区免费| 日本一区二区三区视频视频| 成人av小说网| 亚洲线精品一区二区三区| 7777精品伊人久久久大香线蕉 | 精品一区二区免费在线观看| 555夜色666亚洲国产免| 开心九九激情九九欧美日韩精美视频电影 | 日av在线不卡| 国产色综合久久| 欧美亚洲禁片免费| 精品一区二区在线播放| 尤物在线观看一区| 日韩精品专区在线影院重磅| 国产成人综合网| 亚洲bt欧美bt精品| 中文字幕av一区 二区| 欧美性色黄大片| 久久99精品国产.久久久久久| 亚洲欧美一区二区在线观看| 在线成人小视频| 成人黄色一级视频| 奇米亚洲午夜久久精品| 一区在线播放视频| 91精品国产乱码久久蜜臀| av在线播放一区二区三区| 日韩1区2区日韩1区2区| 一区二区视频在线看| 精品久久国产字幕高潮| 欧美婷婷六月丁香综合色| 国产麻豆日韩欧美久久| 亚洲成人一区二区| 国产精品视频一二三| 日韩欧美国产麻豆| 欧美视频一区二区三区| 成人av电影观看| 国产精品资源在线| 水野朝阳av一区二区三区| 中文字幕一区av| 欧美国产在线观看| 精品国产3级a| 69堂成人精品免费视频| 成人免费观看男女羞羞视频| 紧缚奴在线一区二区三区| 五月综合激情网| 一区二区三区美女| 最好看的中文字幕久久| 欧美激情一区在线观看| 久久久99精品免费观看| 精品少妇一区二区三区| 欧美电影一区二区| 欧美日韩国产综合一区二区三区| 91精品1区2区| 色国产综合视频| 日本韩国视频一区二区| 99久久精品国产观看| 99视频精品全部免费在线| 国产成人久久精品77777最新版本| 国产一区中文字幕| 国产精品自拍av| 国产成人啪免费观看软件| 国产中文字幕精品| 国产成人在线观看免费网站| 国产麻豆9l精品三级站| 国产盗摄视频一区二区三区| 国产91综合一区在线观看| 国产精品1区2区3区在线观看| 黄页视频在线91| 成人av资源在线| 欧美日韩你懂的| 欧美麻豆精品久久久久久| 欧美日韩aaaaaa| 日韩一区二区在线看片| 精品精品国产高清a毛片牛牛| 日韩欧美国产精品一区| 日韩欧美国产成人一区二区| 一级女性全黄久久生活片免费| 亚洲人成在线观看一区二区| 一区二区三区蜜桃| 国产成人午夜视频| 国产一区二区三区久久久 | 日本aⅴ免费视频一区二区三区| 99免费精品在线| www欧美成人18+| 美国三级日本三级久久99| 欧美日韩一区高清| 午夜私人影院久久久久| 欧美精品18+| 日本中文字幕不卡|