注册 登录
查看: 523|回复: 4

[电磁组] 外部中断计时获取超声波高电平时间

[复制链接]
发表于 2017-7-2 07:03:30 | 显示全部楼层 |阅读模式
void Car_distance_get()
{
   uint32 time_old=0;


   if (gpio_get(Echo_yang)==1)
  {

    pit_time_start(PIT1);
    time_old=pit_time_get_us(PIT1);
    printf("old_time is %dus\n",time_old);
  }
   else if (gpio_get(Echo_yang)==0)
  {

#if 0
    sonic_time=pit_time_get_us(PIT1);
    printf("time is %dus\n",sonic_time);
//    pit_close(PIT1);
#endif   
    sonic_time=pit_time_get_us(PIT1)-time_old;

    printf("time is %dus\n",sonic_time);


  Car_distance=sonic_time*340/2/1000;
  }
// if ( Car_distance>5)
  {
   printf("car distance is %dmm\n",Car_distance);

  }
}
以上为中断服务函数调用。但是用串口调试发现时序是对的,即输出顺序是:
old_time is 0us
car distance is 0mm
time is 1us
car distance is 0mm
但是为什么每次计时都没有值呢?求大佬帮助解答


回复

使用道具 举报

发表于 2017-7-2 08:38:36 | 显示全部楼层
什么超声波模块?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-2 14:56:24 | 显示全部楼层
850188828 发表于 2017-7-2 08:38
什么超声波模块?

兄弟超声波(蓝宙)。或者叫鸳鸯超声波
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-2 14:57:46 | 显示全部楼层
换了一对鸳鸯超声波,读数是定值不随距离改变了。。。。
回复 支持 反对

使用道具 举报

发表于 2017-7-3 20:25:58 | 显示全部楼层
解决了吗?我们也是超声波出问题了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部