原理:
根据时序图可知,给trig至少10us高电平进行发波;echo从0变为1表示已经发波,echo从1变回0表示接收到返回的波。根据echo维持高电平的时间来计算距离。
接线:
超声波模块——orangepi
vcc——vcc
gnd——gnd
trig——接0口
echo——接1口
时间函数:
#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz)
struct timeval
{
long tv_sec;//秒
long tv_usec;//微秒
}
gettimeofday()会把目前的时间用tv结构体返回,当地时区的信息则放到tz所指的结构中
1、前期测试代码:计算出cuttest函数运行的时间差
#include <stdio.h>
#include <sys/time.h>
void cuttest()
{
int i,j;
for(i=0;i<100;i++)
for(j=0;j<1000;j++);
}
int main()
{
struct timeval timestart;
struct timeval timestop;
gettimeofday(×tart,NULL);
cuttest();