📄 ultrasonic.c
字号:
#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;//设置成输出
Receive_Dir=0;//设置成输入
delay_xus(1);
Send_ctr=0;//不发射
Receive=1;//等待接收
delay_xus(1);
*P_TimerA_Ctrl=C_TMA1_FOSC_256|C_TMA2_1;//定时器打开
}
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;//发射
}*/
*P_TimerA_Data=0;
while(Receive)*P_Watchdog_Clear=1;//等待接收
TAlong=*P_TimerA_Data;
T=((float)TAlong)*(1/(49152.000/256));//放大了1000倍的时间,所以是毫秒
Long=(340*T)/2;//毫米
Send_ctr=0;
while(Send_ctr)
{
Send_ctr=0;
*P_Watchdog_Clear=1;//停止发射
}
return( (unsigned int)Long );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -