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

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

?? userfunction.c

?? 超聲波倒車雷達的設計程序 利用SPCE061A單片機實現超聲波倒車雷達的測量計算方法。程序中采用軟件校正
?? C
字號:
//========================================================
//	文件名稱:	UserFunction.c
//	功能描述:	超聲波測距功能子程序程序
//  日期:       2006-4-13  
//========================================================
//========================================================
#include "SPCE061A.h"

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

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

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

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

unsigned int ResultOS(void);
void ErrorOS(void);
void InitMeasureData(void);

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

	__asm("FIQ OFF");
	__asm("IRQ ON");
	
	InitMeasureData();
}
//============================================================= 
// 函數名稱:    InitMeasureData()
// 功能描述:	部分全局數據的初始化
// 語法格式:    void InitMeasureData(void)
// 入口參數:    無
// 出口參數:    無
// 注意事項:    僅為用戶模型
//=============================================================
unsigned int uiLCD_EN_flag;
void InitMeasureData(void)
{
	uiIOB_20Hz_flag = 0;								//初始化為零
	uiEXT_EN_flag = 0;
	uiMeasure_Index = 0;
	uiLCD_EN_flag=0;
}

//============================================================= 
// 函數名稱:    BeginMeasure()
// 功能描述:	進行一次測距  包括數據處理
//              每次測距都要進行四次測量,而且都是通過后臺
//				的16Hz中斷啟動這四次測量
// 語法格式:    unsigend int BeginMeasure(void)
// 入口參數:    無
// 出口參數:    無
// 注意事項:    僅為用戶模型
//=============================================================
//延時程序
//
void User_Delay(unsigned int iTimers)
{
	unsigned int i;
	for(i=0;i<iTimers;i++)
	{
		__asm("nop");
		*P_Watchdog_Clear = 0x0001;
	}
}
void US_Send200us(void)
{
	*P_TimerB_Data = 0x0000;							//TimerA計數器清零
	*P_IOB_Data=*P_IOB_Buffer|0x0008;
	*P_TimerB_Ctrl = M_TIMERA_EN;						//使能TimerA
	User_Delay(M_TIMER_SEND);							//延時,發送完十一個以上的完整的40KHz方波脈沖
	*P_IOB_Data=*P_IOB_Buffer&0xfff7;					//停止發送
	uiIOB_20Hz_flag = 1;								//置位標識位
}
unsigned int BeginMeasure(void)
{
	unsigned int uiExit_RQ;								//退出循環標識
	unsigned int uiMeasure_Result;						//測量結果
	unsigned int Temp = 0, Temp2 = 0;
	int i = 0, j = 0;
	
	*P_SystemClock = 0x000b;							//設置SystemCkock,以保證軟件延時的準確
	uiExit_RQ = 1;
	
	uiMeasure_Index = 0;								//開始測量
	*P_INT_Ctrl = *P_INT_Ctrl_New|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(*P_TimerB_Data>900)							//TimerB當中的Data超過900時,表示超過了1.5m							
		{//如果測量的距離超過限定的1.5m ,則結束一次檢測,固定置距離值為1.5m
			*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);	//關掉外部中斷
			uiEXT_EN_flag = 0;
			*P_TimerB_Ctrl = M_TIMERA_STOP;				//同時計數器停止工作
			//對測得的時間差進行初步處理.......
			i = uiMeasure_Index;
			j = 0;
			Temp = 900;
			while(i)
			{
				Temp2 = uiResult[j];
				uiResult[j] = Temp;
				Temp = Temp2;
				j++;
				i--;
			}//end.......
		}
		//一次測距結束(即完成四次測量),進入結果處理
		if(uiMeasure_Index>4)							
		{
			uiMeasure_Index=0;
			uiMeasure_Result = ResultOS();				//處理測距結果
			if(uiMeasure_Result<=M_LOW_DISTEN)
			{//測量時出錯,進入錯誤管理
				uiMeasure_Result = 0;					//出錯時,結果為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;
	}
	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;
	i=0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久网这里都是精品| 国产欧美一区二区精品秋霞影院| 精品国产伦理网| 亚洲欧美激情在线| 精品亚洲porn| 欧美日韩在线播| 一区二区中文视频| 国产在线看一区| 9191成人精品久久| 亚洲综合视频在线| yourporn久久国产精品| 久久久噜噜噜久噜久久综合| 日韩综合小视频| 在线观看区一区二| 日韩毛片视频在线看| 国产盗摄女厕一区二区三区| 正在播放亚洲一区| 午夜亚洲福利老司机| 99热精品国产| 国产精品久久福利| 国产91精品久久久久久久网曝门| 日韩午夜在线观看视频| 天天色综合成人网| 欧美亚洲综合一区| 亚洲综合999| 色94色欧美sute亚洲线路一ni | 亚洲同性gay激情无套| 国产99一区视频免费| 精品日韩欧美在线| 久久超碰97中文字幕| 日韩亚洲欧美成人一区| 欧美96一区二区免费视频| 欧美视频在线一区| 亚洲图片欧美色图| 在线不卡免费av| 日韩黄色一级片| 日韩欧美国产三级| 久久99久久精品欧美| 欧美精品一区二区蜜臀亚洲| 精品影院一区二区久久久| 精品1区2区在线观看| 国产美女在线观看一区| 久久精品夜夜夜夜久久| 成人三级在线视频| 亚洲天堂精品在线观看| 欧美少妇性性性| 日韩av一区二区三区| 精品国产百合女同互慰| 成人永久看片免费视频天堂| 国产精品福利影院| 欧美一a一片一级一片| 天天操天天干天天综合网| 日韩精品一区二区三区视频播放 | 国产精品毛片久久久久久久| av在线免费不卡| 亚洲午夜久久久久久久久久久| 欧美日韩大陆在线| 黄页视频在线91| 亚洲欧洲制服丝袜| 欧美一区二区在线不卡| 精品一区二区三区免费观看| 日本一区二区三区国色天香| 91精彩视频在线观看| 日韩av不卡一区二区| 国产色产综合色产在线视频| 91天堂素人约啪| 免费观看一级欧美片| 国产精品久久久久久久浪潮网站| 色综合欧美在线视频区| 看片的网站亚洲| 综合激情成人伊人| 欧美videos大乳护士334| 99久久精品国产导航| 久久成人免费电影| 亚洲女爱视频在线| 亚洲精品一线二线三线| 在线视频国内一区二区| 久久国产精品无码网站| 亚洲欧美另类小说| 久久久五月婷婷| 欧美欧美午夜aⅴ在线观看| 国产精品系列在线播放| 首页综合国产亚洲丝袜| 中文字幕在线视频一区| 日韩女优毛片在线| 欧美日韩综合一区| www.亚洲人| 国产一区二区美女诱惑| 日日夜夜精品视频天天综合网| 国产精品美女久久久久久久| 日韩一区二区三区三四区视频在线观看| www.亚洲国产| 国产精品综合av一区二区国产馆| 亚洲国产婷婷综合在线精品| 亚洲欧美怡红院| 欧美激情综合五月色丁香小说| 91精品视频网| 欧美日韩免费一区二区三区视频| 成人手机电影网| 国产麻豆精品久久一二三| 麻豆国产精品一区二区三区| 亚洲国产中文字幕| 一区二区高清视频在线观看| 国产精品久久久久久户外露出| 久久天堂av综合合色蜜桃网| 精品久久久久久久一区二区蜜臀| 欧美精品黑人性xxxx| 欧美日韩国产片| 欧美亚洲一区三区| 欧美性受xxxx| 欧美高清视频在线高清观看mv色露露十八 | 欧美日韩精品一区二区三区蜜桃| 91色视频在线| 一本大道久久a久久综合婷婷| av激情综合网| 91污在线观看| 欧美日韩综合色| 欧美日本一区二区| 欧美一区日韩一区| 欧美成人免费网站| 久久婷婷成人综合色| 日本一区二区视频在线观看| 中文字幕欧美激情一区| 亚洲天堂中文字幕| 亚洲国产一区二区三区青草影视 | 欧美日韩国产一级片| 欧美猛男超大videosgay| 欧美欧美欧美欧美| 欧美一区二区黄色| 久久奇米777| 中文字幕日韩一区| 亚洲成人激情av| 五月天激情综合| 久久99精品久久久久久| 国产**成人网毛片九色| 91丨porny丨最新| 欧美色综合网站| 欧美大片免费久久精品三p| 国产婷婷色一区二区三区四区| 欧美国产一区在线| 亚洲一区二区三区在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美一区二区三区免费| 久久亚洲精华国产精华液| 亚洲国产精品精华液2区45| 中文字幕一区视频| 午夜精品aaa| 国产精品伊人色| 欧美视频在线观看一区二区| 精品处破学生在线二十三| 中文字幕一区二区三区四区| 性做久久久久久免费观看| 国产成人啪免费观看软件| 色欧美乱欧美15图片| 精品国产一区久久| 一区二区在线观看免费| 久久精品国产网站| 91麻豆免费在线观看| 精品免费视频一区二区| 亚洲人成网站精品片在线观看| 蜜臀av性久久久久蜜臀aⅴ | 欧美撒尿777hd撒尿| 国产日韩欧美电影| 五月婷婷综合激情| 97成人超碰视| 欧美精品一区二区精品网| 亚洲国产综合人成综合网站| 国产91在线看| 日韩色视频在线观看| 亚洲一区在线视频| 丁香亚洲综合激情啪啪综合| 制服丝袜亚洲精品中文字幕| 亚洲精品视频免费看| 国产风韵犹存在线视精品| 欧美一区二区三区免费观看视频 | 久久影院视频免费| 三级不卡在线观看| 在线国产电影不卡| 亚洲视频资源在线| 国产精品一区二区不卡| 日韩手机在线导航| 日韩在线一区二区三区| 在线免费亚洲电影| 亚洲日本乱码在线观看| 成人v精品蜜桃久久一区| 久久青草国产手机看片福利盒子| 亚洲h动漫在线| 欧美在线影院一区二区| 亚洲欧美另类久久久精品2019| 粉嫩13p一区二区三区| 久久久久88色偷偷免费| 九九久久精品视频| 欧美一区二区免费观在线| 丝袜脚交一区二区| 欧美精品v日韩精品v韩国精品v| 亚洲五码中文字幕| 欧美日韩一级二级| 亚洲va韩国va欧美va精品| 欧美美女网站色| 五月天国产精品|