k60用HC-SR04测距
单片机源程序如下:
- #include "common.h"
- #include "include.h"
- #define TRIG PTD2
- #define ECHG PTD1
- #define FLAGWAIT 0xFFFFF
- /*!
- * @brief main函数
- * @since v5.0
- * @note 野火 PIT 计时实验
- */
- void main()
- {
- uint32 timevar;
- uint32 flag;
- gpio_init(TRIG,GPO,0);
- gpio_init(ECHG,GPI,0);
-
- while(1)
- {
- flag = 0;
- gpio_set(TRIG,1); //产生触发脉冲
- pit_delay_us(PIT1,15);
- gpio_set(TRIG,0);
-
- while(gpio_get(ECHG) == 0); //等待电平变高,低电平一直等待
- pit_time_start (PIT0); //开始计时
- while(gpio_get(ECHG) == 1) //等待电平变低,高电平一直等待
- {
- flag++;
- if(flag >FLAGWAIT)
- {
- break;
- }
- };
-
- timevar = pit_time_get_us (PIT0); //停止计时,获取计时时间
- if(flag <FLAGWAIT )
- {
- timevar = timevar * 340 /2/1000;
-
- if(timevar > 5)
- {
- printf("\n\n距离为:%dmm",timevar); //打印延时时间
- }
- }
-
- DELAY_MS(1000);
- }
- }
复制代码
所有资料51hei提供下载:
PIT_计时_超声波.7z
(304.55 KB, 下载次数: 5)
|