注册 登录
查看: 510|回复: 12

[电磁组] 【超声波】关于pit定时中断产生方波

[复制链接]
发表于 2014-2-22 14:36:01 | 显示全部楼层 |阅读模式
         因为我们买的超声波模块要给TRIG端口至少 10us 的高电平信号才能发出超声波,并且至少60us发一次。所以我用pit定时中断产生这样子的方波。但是用示波器检测不到方波。
是我方法不对吗?

   最后我就试了一个简单的程序,每1s一个中断,中断改变端口电平产生方波,可是还是没效果,是一个类似于正弦和三角波的图形,是怎么回事啊。
你们有试过没。

   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-2-22 14:43:14 | 显示全部楼层
直接延时产生脉冲就好了
回复 支持 反对

使用道具 举报

发表于 2014-2-22 14:43:53 | 显示全部楼层
10us,这么短的时间,不建议用中断了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 14:56:43 | 显示全部楼层
风落小鱼 发表于 2014-2-22 14:43
10us,这么短的时间,不建议用中断了

那用什么啊,普通的延时吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 15:02:22 | 显示全部楼层
风落小鱼 发表于 2014-2-22 14:43
10us,这么短的时间,不建议用中断了

那用什么啊,普通的延时吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 15:04:13 | 显示全部楼层
风落小鱼 发表于 2014-2-22 14:43
直接延时产生脉冲就好了

哦,受教了,才发现2个回复的ID都是你,谢谢
回复 支持 反对

使用道具 举报

发表于 2014-2-22 15:09:56 | 显示全部楼层
majiyong 发表于 2014-2-22 15:02
那用什么啊,普通的延时吗

普通延时可以啊,山外哥的代码里提供了比较多的延时函数:
  1. /*
  2. * 配置延时函数
  3. */
  4. #if 1
  5. #include "MK60_DWT.h"                       //推荐使用
  6. #define DELAY()         dwt_delay_ms(500)
  7. #define DELAY_MS(ms)    dwt_delay_ms(ms)
  8. #define DELAY_US(us)    dwt_delay_us(us)
  9. #elif   0
  10. #include "MK60_lptmr.h"
  11. #define     DELAY()         lptmr_delay_ms(500)
  12. #define     DELAY_MS(ms)    lptmr_delay_ms(ms)
  13. #define     DELAY_US(us)    lptmr_delay_us(us)
  14. #elif   0
  15. #include "MK60_pit.h"
  16. #define DELAY()         pit_delay_ms(PIT3,500)
  17. #define DELAY_MS(ms)    pit_delay_ms(PIT3,ms)
  18. #define DELAY_US(us)    pit_delay_us(PIT3,us)
  19. #else
  20. #include "MK60_SysTick.h"
  21. #define DELAY()         systick_delay_ms(500)
  22. #define DELAY_MS(ms)    systick_delay_ms(ms)
  23. #define DELAY_US(us)    systick_delay_us(us)
  24. #endif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-23 19:47:50 | 显示全部楼层
风落小鱼 发表于 2014-2-22 14:43
直接延时产生脉冲就好了

新人再弱弱的多问一句
我写一个延迟程序,该怎么看它是不是10us的啊。我必须要知道cup的频率吗,可是山外的K60库不知道怎么看cup的频率是多少。
回复 支持 反对

使用道具 举报

发表于 2014-2-23 19:55:29 | 显示全部楼层
majiyong 发表于 2014-2-23 19:47
新人再弱弱的多问一句
我写一个延迟程序,该怎么看它是不是10us的啊。我必须要知道cup的频率吗,可是山外 ...

我们的代码,都是直接内部根据系统频率来处理,用户不需要关心系统频率的问题。

看上述的单位,函数名 有 us ,就是us为单位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-23 21:37:31 | 显示全部楼层
山外メ雲ジ 发表于 2014-2-23 19:55
我们的代码,都是直接内部根据系统频率来处理,用户不需要关心系统频率的问题。

看上述的单位,函数名 ...

可是我没找到延时的,只找到了PIT中断的了,那10us不是用延时更好么。
你可以顺便告诉我那个文件里面可以找到你们的us延时的程序么。
谢谢了
回复 支持 反对

使用道具 举报

发表于 2014-2-23 23:01:24 | 显示全部楼层
majiyong 发表于 2014-2-23 21:37
可是我没找到延时的,只找到了PIT中断的了,那10us不是用延时更好么。
你可以顺便告诉我那个文件里面可以 ...

建议你看我们的K60视频,熟悉一下我们的程序。
花个一两天的时间看一次,比你这样不懂,然后老是自己调试,然后问人,这样更省时间,而且学到得更多。

7楼已经把我们提供的延时函数提供了,如果你没看懂代码,那更加有必要看一下我们的视频,因为视频里讲了很多这些语法的使用,对你有帮助的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-24 09:08:22 | 显示全部楼层
山外メ雲ジ 发表于 2014-2-23 23:01
建议你看我们的K60视频,熟悉一下我们的程序。
花个一两天的时间看一次,比你这样不懂,然后老是自己调试 ...

哦,谢谢了。
因为我只看了3天学会K60,所以就没怎么去注意视频了,我去看下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-24 17:22:39 | 显示全部楼层
隗英秀 发表于 2014-2-22 15:09
普通延时可以啊,山外哥的代码里提供了比较多的延时函数:

你可以把这个版本山外的库发给我吗,我现在库里没有第一个和最后一个函数。
或者你可以下载地址给我。
534130404@qq.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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