?? ultrasonic.c
字號(hào):
#include "spce061a.h"
#include "MyBit.h"
#define Send_ctr A8 //高有效
#define Receive A9 //接收到有下降沿
#define Send_ctr_Dir A8_Dir //高有效
#define Receive_Dir A9_Dir //接收到有下降沿
void UltrasonicInit(void)
{
Send_ctr_Dir=1;//設(shè)置成輸出
Receive_Dir=0;//設(shè)置成輸入
delay_xus(1);
Send_ctr=0;//不發(fā)射
Receive=1;//等待接收
delay_xus(1);
*P_TimerA_Ctrl=C_TMA1_FOSC_256|C_TMA2_1;//定時(shí)器打開
}
unsigned int GetDistance(void)
{
unsigned int TAlong=0;
float T;
float Long=0;
Send_ctr=1;
/*while(!Send_ctr)
{
Send_ctr=1;
*P_Watchdog_Clear=1;//發(fā)射
}*/
*P_TimerA_Data=0;
while(Receive)*P_Watchdog_Clear=1;//等待接收
TAlong=*P_TimerA_Data;
T=((float)TAlong)*(1/(49152.000/256));//放大了1000倍的時(shí)間,所以是毫秒
Long=(340*T)/2;//毫米
Send_ctr=0;
while(Send_ctr)
{
Send_ctr=0;
*P_Watchdog_Clear=1;//停止發(fā)射
}
return( (unsigned int)Long );
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -