智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5278|回复: 27
打印 上一主题 下一主题

超声波代码 大家帮忙看看

  [复制链接]

18

主题

346

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2515

优秀会员奖章活跃会员奖章

威望
1198
贡献
703
兑换币
752
注册时间
2012-12-24
在线时间
307 小时
跳转到指定楼层
1#
发表于 2014-4-13 10:23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 老学童先生 于 2014-4-13 10:31 编辑

#include "common.h"
#include "include.h"
#define  Trig   PTA27  //超声波输入(触发)
#define  Echo   PTD6  //超声波接收

#define  led1  PTB20_OUT//野火自带的led灯


void PORTD_IRQHandler(void);        //PORTD端口中断服务函数
void PIT0_IRQHandler(void);
uint8  m=0;
uint32  t=0;
uint8  f=0;
//uint32 time=0;
//uint32 time_rising=0;
//float  distance=0;
uint32 distance=0;
void HC_SR04_Send(void)
{

gpio_set(Trig, 1);
DELAY_US(20);
gpio_set(Trig, 0);

//printf("\n Trig\n");
}



void main()
{
   // printf("\n*****csb测试*****\n");
    gpio_init (Trig, GPO,0);
    DELAY_US(2);

   pit_init_us(PIT0, 100);                          //定时 1000 个bus时钟 后中断  100us
   set_vector_handler(PIT0_VECTORn,PIT0_IRQHandler);   // 设置中断复位函数到中断向量表里
   // enable_irq(PIT1_IRQn);                       //IRQ_RISING   IRQ_FALLING  IRQ_EITHER
    port_init(Echo, ALT1 | IRQ_EITHER | PULLUP );          //初始化 PTD7 管脚,复用功能为GPIO ,下降沿触发中断,上拉电阻
    set_vector_handler(PORTD_VECTORn ,PORTD_IRQHandler);    //设置PORTE的中断复位函数为 PORTE_IRQHandler
    enable_irq (PORTD_IRQn);                                //使能PORTE中断
     //HC_SR04_Send();
     //DELAY_MS(50);
    while(1)
    {
        HC_SR04_Send();

        DELAY_MS(500);

    }
}


void PORTD_IRQHandler(void)
{


    uint8  n = 0;    //引脚号
    n = 6;
    m++;
    if(PORTD_ISFR & (1 << n))           //PTD7 触发中断
    {
        PORTD_ISFR  = (1 << n);        //写1清中断标志位

        /*  以下为用户任务  */

      //  printf("\n按下按键\n");
       // key_handler();
         if(m==1)
          {
            t=0;
        
          enable_irq(PIT0_IRQn);                         // 使能LPTMR

      


          }
         if((m==2)||(t>=348))
          {
           disable_irq(PIT0_IRQn);
           if(t>=348)
             t=348;
        
           distance=17*t;//(340*t*100us)/2=17*t 为啥是实际距离的两倍?????
           printf("\n distance为:%d mm\n",distance);    //打印延时时间
        
           m=0;
        

          }  
        /*  以上为用户任务  */
    }

}

void PIT0_IRQHandler(void)
{

    t++;
    PIT_Flag_Clear(PIT0);       //清中断标志位
}

回复

使用道具 举报

18

主题

346

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2515

优秀会员奖章活跃会员奖章

威望
1198
贡献
703
兑换币
752
注册时间
2012-12-24
在线时间
307 小时
2#
 楼主| 发表于 2014-4-13 10:58:13 | 只看该作者
distance 为啥是实际距离的两倍??
回复 支持 反对

使用道具 举报

65

主题

696

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3631

活跃会员奖章优秀会员奖章论坛骨干奖章论坛元老奖章在线王奖章

威望
1886
贡献
1057
兑换币
1118
注册时间
2013-4-23
在线时间
344 小时
3#
发表于 2014-4-13 13:21:12 | 只看该作者
????
回复 支持 反对

使用道具 举报

18

主题

346

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2515

优秀会员奖章活跃会员奖章

威望
1198
贡献
703
兑换币
752
注册时间
2012-12-24
在线时间
307 小时
4#
 楼主| 发表于 2014-4-13 21:39:56 | 只看该作者
dingyongbin 发表于 2014-4-13 13:21
????

啥意思?
回复 支持 反对

使用道具 举报

6

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
468
威望
270
贡献
122
兑换币
175
注册时间
2013-6-15
在线时间
38 小时
毕业学校
jd
5#
发表于 2014-4-15 14:38:00 | 只看该作者
大哥,你那里看出来是实际的2被了!!!
回复 支持 反对

使用道具 举报

18

主题

346

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2515

优秀会员奖章活跃会员奖章

威望
1198
贡献
703
兑换币
752
注册时间
2012-12-24
在线时间
307 小时
6#
 楼主| 发表于 2014-4-15 15:24:13 | 只看该作者
QQ520 发表于 2014-4-15 14:38
大哥,你那里看出来是实际的2被了!!!

已解决了 。。。
回复 支持 反对

使用道具 举报

5

主题

162

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3774
威望
1745
贡献
1125
兑换币
1109
注册时间
2012-11-1
在线时间
452 小时
7#
发表于 2014-4-15 16:06:38 | 只看该作者
回复 支持 反对

使用道具 举报

18

主题

346

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2515

优秀会员奖章活跃会员奖章

威望
1198
贡献
703
兑换币
752
注册时间
2012-12-24
在线时间
307 小时
8#
 楼主| 发表于 2014-4-15 16:08:50 | 只看该作者
雨子 发表于 2014-4-15 16:06

????
回复 支持 反对

使用道具 举报

5

主题

162

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3774
威望
1745
贡献
1125
兑换币
1109
注册时间
2012-11-1
在线时间
452 小时
9#
发表于 2014-4-15 16:13:08 | 只看该作者
老学童先生 发表于 2014-4-15 16:08
????

你看看超声波的原理不就知道啦
回复 支持 反对

使用道具 举报

18

主题

346

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2515

优秀会员奖章活跃会员奖章

威望
1198
贡献
703
兑换币
752
注册时间
2012-12-24
在线时间
307 小时
10#
 楼主| 发表于 2014-4-15 16:17:02 | 只看该作者
雨子 发表于 2014-4-15 16:13
你看看超声波的原理不就知道啦

额  谢谢提醒
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-25 02:16 , Processed in 0.053835 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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