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

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

?? userfunction.c

?? ultrasonic sensorsch,pcb,code,documentation
?? C
字號:
//=============================================================
//  文件名稱: UserFunction.c
//  實現功能: 用戶功能子程序程序
//  完成日期:  2004,7,21
//==============================================================
#define P_TimerB_Data			(volatile unsigned int *)0x700C   
#define P_TimerB_Ctrl			(volatile unsigned int *)0x700D  
#define P_TimeBase_Setup		(volatile unsigned int *)0x700E 

#define P_IOB_Data				(volatile unsigned int *)0x7005  
#define P_IOB_Buffer			(volatile unsigned int *)0x7006   
#define P_IOB_Dir				(volatile unsigned int *)0x7007   
#define P_IOB_Attrib			(volatile unsigned int *)0x7008 

#define P_INT_Ctrl				(volatile unsigned int *)0x7010   
#define P_INT_Clear				(volatile unsigned int *)0x7011  
#define P_INT_Ctrl_New			(volatile unsigned int *)0x702d
#define P_Watchdog_Clear		(volatile unsigned int *)0x7012 
#define P_SystemClock			(volatile unsigned int *)0x7013  

#define M_TIMERA_EN       0x0001					//使能TimerA的配置,計數頻率為96KHz
#define M_TIMERA_STOP	  0x0006					//停止TimerA的配置,計數器停止工作

unsigned int  M_TIMER_DELAY=30;				//為防止余波干擾而定義的延時
unsigned int  M_LOW_DISTEN=7;
unsigned int  M_TIMER_OFFSET=20;
unsigned int  M_TIMER_SEND=10;
unsigned int  M_MUT_DATA=32300;

unsigned int uiIOB_20Hz_flag;				//IOB01口(即20Hz方波輸出口)的狀態標識
unsigned int uiEXT_EN_flag;					//外部中斷使能標識位

unsigned int uiMeasure_Index;				//當前測量的次數
unsigned int uiResult[4];					//保存測四次測量結果的緩存區

extern unsigned int F_Binary_BCD(unsigned int Binary);
//F_Binary_BCD為Data_OS_A.asm文件里提供
unsigned int ResultOS(void);
void ErrorOS(void);
void InitMeasureData(void);

unsigned int uiError_Counter;						//出錯累加器
//============================================================= 
// 函數名稱:    InitMeasure()
// 功能描述:	系統IO口、中斷等進行初始化
// 語法格式:    void InitMeasure(void)
// 入口參數:    無
// 出口參數:    無
// 注意事項:    用戶可參考設置進行必要修改,以適應不同情況
//=============================================================
void InitMeasure(void)
{
	unsigned int iTest;		//設置的中間量
	//設置IOB口   IOB04口為20Hz(也許用16Hz)的輸出,以控制模組發射40KHz方波   
	//IOB2 口為外部中斷的輸入,設置為帶上拉的輸入口。
	*P_SystemClock = 0x000b;
	
	*P_IOB_Dir = 0x0010;
	*P_IOB_Attrib = 0x0010;
	*P_IOB_Data = 0x0004;
	//開時間基準中斷,TMB1  16Hz
	*P_TimeBase_Setup=0x0001;
	//設置TimerB   選使其處于停止工作狀態
	*P_TimerB_Data = 0x0000;
	*P_TimerB_Ctrl = M_TIMERA_STOP;
	
	*P_INT_Ctrl = 0x0008;				//開IRQ5的2Hz中斷,用來清狗
	__asm("FIQ OFF");
	__asm("IRQ ON");
	
	InitMeasureData();
}
//============================================================= 
// 函數名稱:    InitMeasureData()
// 功能描述:	部分全局數據的初始化
// 語法格式:    void InitMeasureData(void)
// 入口參數:    無
// 出口參數:    無
// 注意事項:    僅為用戶模型
//=============================================================
void InitMeasureData(void)
{
	uiIOB_20Hz_flag = 0;				//初始化為零
	uiEXT_EN_flag = 0;
	
	uiMeasure_Index = 0;
}

//============================================================= 
// 函數名稱:    BeginMeasure()
// 功能描述:	進行一次測距  包括數據處理
//              每次測距都要進行四次測量,而且都是通過后臺
//				的16Hz中斷啟動這四次測量
// 語法格式:    unsigend int BeginMeasure(void)
// 入口參數:    無
// 出口參數:    無
// 注意事項:    僅為用戶模型
//=============================================================
//延時程序
//
void User_Delay(unsigned int iTimers)
{
	unsigned int i;
	for(i=0;i<iTimers;i++)
	{
		__asm("nop");
	}
}
void US_Send200us(void)
{
	*P_TimerB_Data = 0x0000;		//TimerA計數器清零
	*P_IOB_Data=0x0014;
	*P_TimerB_Ctrl = M_TIMERA_EN;	//使能TimerA
	User_Delay(M_TIMER_SEND);					//延時,發送完十一個以上的完整的40KHz方波脈沖
	*P_IOB_Data=0x0004;				//停止發送
	uiIOB_20Hz_flag = 1;			//置位標識位
}
unsigned int BeginMeasure(void)
{
	unsigned int uiExit_RQ;			//退出循環標識
	unsigned int uiMeasure_Result;	//測量結果
	unsigned int i;
	
	*P_SystemClock = 0x000b;		//設置SystemCkock,以保證軟件延時的準確...Edit by xinqiang 20050806
	uiExit_RQ = 1;
	
	uiMeasure_Index = 0;			//開始測量
	*P_INT_Ctrl = 0x0002;			//打開16Hz中斷,在中斷里面啟動測量
	while(uiExit_RQ)
	{
		if(uiIOB_20Hz_flag)			//當該標識位非零時才進行下面的判斷
		{
			if(*P_TimerB_Data>=M_TIMER_DELAY)			//計數器中數值表明已經過了余波干擾延時
			{											//可以打開外部中斷,檢測回波信號
				*P_INT_Clear = 0x0100;					//開中斷前先清中斷
				*P_INT_Ctrl = *P_INT_Ctrl_New|0x0100;
				uiEXT_EN_flag = 1;
				uiIOB_20Hz_flag = 0;					//清該標志位,由16Hz中斷啟動下一次測量
			}
		}
		//一次測距結束(即完成四次測量),進入結果處理
		if(uiMeasure_Index>4)							
		{
			uiMeasure_Index=0;
			uiMeasure_Result = ResultOS();				//處理測距結果
			if(uiMeasure_Result<=M_LOW_DISTEN)
			{//測量時出錯,進入錯誤管理
				uiMeasure_Result = 0;				//出錯時,結果為0
			}
		//	else
		//	{
		//		Speech_Result(uiMeasure_Result);
		//		uiError_Counter = 0;				//錯誤計數器清零
		//	}
			uiExit_RQ=0;
			break;
		}
		*P_Watchdog_Clear = 0x0001;
	}
	return uiMeasure_Result;						//返回數據,返回0時代表測量出錯。
}

//============================================================= 
// 函數名稱:    ResultOS()
// 功能描述:	對結果進行軟件處理  包括結果解算、軟件補償等。 
// 語法格式:    unsigned int ResultOS(void)
// 入口參數:    無
// 出口參數:    十進制的距離,以cm為單位
// 注意事項:    僅為用戶模型
//=============================================================

unsigned int ResultOS(void)
{
	unsigned long int uliResult2;	
	unsigned int uiResult1;
	unsigned int i;
	if(uiResult[0]<=(M_TIMER_DELAY+M_TIMER_OFFSET))
	{//此時的數據是錯的
		return 0;
	}
	else
	{
		for(i=0;i<3;i++)
		{
			if((uiResult[i]-uiResult[i+1])>=30)
			{
				uiResult[i+1] = uiResult[i];
			}
		}	
	}
	
	uiResult1 = (uiResult[1]+uiResult[2])/2-3;		//取平均值
	uliResult2 = (unsigned long int)uiResult1*M_MUT_DATA;//數據處理
	uliResult2 = uliResult2/96;
	uliResult2 = uliResult2/2;
	//用戶可在止加入適當的軟件補償,以期得到更準確的距離值
//	uliResult2 = uliResult2-3050;
	uliResult2 = uliResult2/1000;
	
	//..end
	uiResult1 = (unsigned int)uliResult2;
	for(i=0;i<4;i++)
	{
		uiResult[i]=0;
	}
	return uiResult1;
}

//============================================================= 
// 函數名稱:    void ErrorOS(void)
// 功能描述:	測量出錯管理(處理)
// 語法格式:    void ErrorOS(void)
// 入口參數:    無
// 出口參數:    無
// 注意事項:    僅為用戶模型
//=============================================================
void ErrorOS(void)
{
	unsigned int i;
	Speech_Resource(12);
/*	for(i=0;i<3;i++)
	{
		LCD_Draw(1);
		User_Delay(20000);
		LCD_Draw(0);
		User_Delay(20000);
	}
	uiError_Counter++;
	if(uiError_Counter>3) uiError_Counter = 3;
	switch(uiError_Counter)
	{
		case 1: Speech_Resource(14);break;
		case 2: Speech_Resource(15);break;
		case 3: Speech_Resource(16);break;
		default: break;
	}*/
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色在线观看| 亚洲欧洲av色图| 成人午夜伦理影院| 亚洲激情图片小说视频| 精品区一区二区| 91视频.com| 午夜久久久影院| 亚洲人成网站精品片在线观看 | 亚洲一区二区三区在线| 久久久国际精品| 色先锋资源久久综合| 久久精品久久精品| 夜夜嗨av一区二区三区四季av| 日韩欧美一区二区久久婷婷| 在线日韩av片| 国产成人精品在线看| 日韩精品一级二级 | 日韩写真欧美这视频| 成人动漫中文字幕| 精品无人码麻豆乱码1区2区 | 欧美国产一区视频在线观看| 欧美中文字幕亚洲一区二区va在线| 国产一区二区三区免费| 亚洲成人先锋电影| 欧美精品一区视频| 欧美一区二区三区喷汁尤物| 91婷婷韩国欧美一区二区| 国产精品99久久久久久久vr| 日韩福利电影在线观看| 亚洲另类一区二区| 国产精品的网站| 久久免费视频色| 91精品午夜视频| 午夜欧美电影在线观看| 99国产欧美另类久久久精品| 国产一区三区三区| 热久久国产精品| 五月天婷婷综合| 一区二区三区毛片| 亚洲婷婷在线视频| 一区二区三区在线免费观看| 国产精品色呦呦| 国产精品大尺度| 自拍偷拍亚洲欧美日韩| 日韩一区和二区| 日韩一区二区三区在线| 91精品久久久久久久91蜜桃| 成人高清免费观看| 成av人片一区二区| 豆国产96在线|亚洲| 免费看欧美女人艹b| 日产国产高清一区二区三区| 亚洲成人在线免费| 美女在线视频一区| 久久精品国产99国产| 久久国产麻豆精品| 久久精品国产免费看久久精品| 男女激情视频一区| 日韩在线a电影| 美女视频黄 久久| 日本强好片久久久久久aaa| 日本不卡一二三| 蜜乳av一区二区三区| 极品少妇xxxx偷拍精品少妇| 国产精品99久久久| 成人天堂资源www在线| 色婷婷av一区二区三区gif| 欧美在线观看视频一区二区 | 亚洲欧美区自拍先锋| 亚洲日本在线a| 亚洲成av人影院| 美女脱光内衣内裤视频久久网站 | 精品视频一区三区九区| 欧美日韩一区三区| 欧美剧情片在线观看| 日韩欧美激情四射| 久久久精品黄色| 成人免费在线视频| 一区二区三区高清在线| 蜜臀精品一区二区三区在线观看| 老司机一区二区| av男人天堂一区| 欧美日韩一级黄| 亚洲精品一区在线观看| 综合欧美一区二区三区| 日韩一区精品字幕| 亚洲电影视频在线| 国产不卡在线播放| 欧美影视一区在线| 国产免费久久精品| 一区二区三区日韩| 日本中文在线一区| 99精品视频在线观看| 欧美日韩一区视频| 国产精品精品国产色婷婷| 亚洲国产欧美日韩另类综合| 精品一区二区三区的国产在线播放| 91啪亚洲精品| 日韩午夜三级在线| 综合在线观看色| 日本伊人精品一区二区三区观看方式| 日韩精品最新网址| 亚洲色图欧美在线| 91浏览器入口在线观看| 国产丝袜美腿一区二区三区| 精品国产露脸精彩对白| 精品欧美乱码久久久久久 | 亚洲成人午夜电影| 久久99精品久久久久| 91麻豆视频网站| 欧美日韩国产综合一区二区三区| 久久夜色精品一区| 亚洲一区二区精品3399| 国产精品一区专区| 欧美精品乱码久久久久久按摩 | 91在线高清观看| 久久久久9999亚洲精品| 亚洲一卡二卡三卡四卡| 国产精品资源在线看| 欧美成人免费网站| 亚洲精品日韩一| 黄色资源网久久资源365| 91麻豆视频网站| 欧美韩国日本不卡| 国产成人av自拍| 日韩视频一区在线观看| 日韩精品中文字幕在线不卡尤物| 亚洲中国最大av网站| aaa国产一区| 中文字幕一区二区三区在线不卡| 久久国产精品99久久久久久老狼| 欧美亚洲国产一卡| 亚洲综合999| 99视频超级精品| 亚洲欧美国产三级| 成人在线综合网| 日韩欧美一二区| 裸体歌舞表演一区二区| 这里只有精品99re| 日韩av一二三| 欧美精品vⅰdeose4hd| 国产欧美综合在线观看第十页 | www..com久久爱| 久久久久国产一区二区三区四区 | 日韩av不卡在线观看| 欧美日韩一区国产| 午夜精品在线看| 欧美日韩国产123区| 亚洲国产精品自拍| 91精品国产综合久久香蕉的特点 | 夜夜揉揉日日人人青青一国产精品| 97se亚洲国产综合在线| 亚洲日本在线看| 91蜜桃在线免费视频| 亚欧色一区w666天堂| 欧美视频第二页| 久久99国内精品| 欧美精品一区二区在线观看| 午夜久久久久久| 日韩精品中文字幕一区| 久久精品999| 国产片一区二区| 91在线一区二区三区| 亚洲综合一区二区| 欧美日免费三级在线| 亚洲欧美另类久久久精品| 欧美喷水一区二区| 全国精品久久少妇| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲六月丁香色婷婷综合久久| 高清国产一区二区三区| 亚洲久草在线视频| 欧美中文字幕一区| 国产一区二区三区四区五区入口| 久久久99久久| 不卡的看片网站| 亚洲精品乱码久久久久久久久 | 免费人成网站在线观看欧美高清| 欧美大片日本大片免费观看| 不卡一区二区在线| 午夜欧美2019年伦理| 欧美性高清videossexo| 奇米影视在线99精品| 久久亚洲精精品中文字幕早川悠里 | 久久国产剧场电影| 国产精品美女久久久久久久网站| 欧美乱妇23p| 国产成人无遮挡在线视频| 国产精品久久久久久户外露出| 一本色道久久加勒比精品| 图片区小说区区亚洲影院| 日本一区二区电影| 欧美视频中文字幕| 国产98色在线|日韩| 一区二区三区.www| 日韩一二三区视频| 97精品国产97久久久久久久久久久久| 午夜一区二区三区视频| 国产精品网站一区| 欧美精品久久久久久久久老牛影院|