极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16016|回复: 13

脉冲产生器

[复制链接]
发表于 2013-5-3 13:36:37 | 显示全部楼层 |阅读模式
本帖最后由 学长 于 2013-8-27 16:19 编辑

本脉冲产生器撰写时,  因为未参考原作者写的文章 How to write  libraries for the Arduino? ,
以至於使用了 学长 所习惯比较不严谨的命名方式。

今天再上传一个完全以文章内所建议的方式,将全部命名修改。另建文章以示区别。
并感谢 群内、站内各位高手,如下
星空, 看海的日子, 夜, Boku , 小清新, 咖啡冻, darkorigin 等高手,
协助测试, 并提供宝贵建议。

请至另一帖子下载 改邪归自由版
http://www.geek-workshop.com/thread-4451-1-1.html


脉冲产生器

使用范例 及 CPP 在 压缩包内
  1. /*
  2.   pulseGen.h - Library for Pulse Generator
  3.   Created by Andy Huang, May,2,2013.
  4.   Tradition Chinese Forum [url]http://bbs.game7777.net[/url]
  5.   Tradition Chinese wiki [url]http://www.game7777.net[/url]
  6.   
  7.   特性:
  8.   1. 不停止 cpu 运行, 不使用 delay() delaymicroseconds() 。
  9.   2. 脉冲计数。
  10.   3. 指定脉冲 on off 时间, us 微秒。
  11.   4. 可同时使用多个引脚进行不同脉冲。
  12.   
  13.   使用方式:
  14.   1. 建构时指定 引脚 on时间 off 时间
  15.   2. 每个循环呼叫 generator()
  16.   3. 暂时不需要脉冲时, 停止呼叫 generator() 即可
  17.   4. 重新需要输出脉冲时,必须先呼叫 init() 一次。时间及计数归零。

  18.   注意事项:
  19.   1. 暂停後重新启动脉冲, 如果未先呼叫 init() , 第一次所产生的脉冲时长最多可能达到71.5分钟。
  20.   

  21. */


  22. #ifndef pulseGen_h
  23. #define pulseGen_h

  24. #include "Arduino.h"

  25. class pulseGen{
  26. public:
  27.         /* 建立 pulse
  28.         /* @param pin                         第几引脚
  29.         /* @param onInterval        脉冲 ON 的时间 微秒 us
  30.         /* @param offInterval        脉冲 OFF 的时间 微秒 us
  31.         */
  32.         pulseGen(int pin,int onInterval, int offInterval);
  33.        
  34.         /* 重新初始化
  35.         /* @param onInterval        脉冲 ON 的时间 微秒 us
  36.         /* @param offInterval        脉冲 OFF 的时间 微秒 us
  37.         */
  38.         void init(int onInterval, int offInterval);
  39.        
  40.         /* 执行
  41.         */
  42.         void generator();
  43.        

  44.        
  45. private:

  46.         int _pin;                                                        //指定引脚
  47.         unsigned long pulseOnInterval;                //on时间
  48.         unsigned long pulseOffInterval;                //off时间
  49.        
  50.         unsigned long oldTime;                                //比对用
  51.         unsigned long newTime;                                //比对用
  52.        
  53.         bool pulseState;                                        //脉冲状态

  54. };

  55. #endif
复制代码


简单易用
再贴个范例好了

  1. #include <pulseGen.h>
  2. pulseGen pulse1(7,100,100); //七号引脚,产生 100us on 及 100us off 的脉冲

  3. void setup() {

  4. }

  5. void loop() {
  6.   pulse1.generator();
  7.   
  8. }
复制代码

回复

使用道具 举报

发表于 2013-5-3 19:15:06 | 显示全部楼层
看不懂,但{:soso_e179:}
回复 支持 反对

使用道具 举报

发表于 2013-5-3 20:30:20 | 显示全部楼层
楼主你好!这个脉冲频率能控制吗?最好解释更详细些就好了!
回复 支持 反对

使用道具 举报

发表于 2013-5-3 23:33:16 | 显示全部楼层
fangtaonj 发表于 2013-5-3 20:30
楼主你好!这个脉冲频率能控制吗?最好解释更详细些就好了!

pulseGen(int pin,int onInterval, int offInterval);
第一个参数就是 引脚。 就是你要在哪个脚输出波形
第二个就是on的时间
第三个参数就是OFF的时间

后面2个参数可以直接控制频率啊。。。。。纳秒级的了。
回复 支持 反对

使用道具 举报

发表于 2013-5-3 23:38:58 | 显示全部楼层
范例代码按照说明,好像有问题
不是说需要先调用INIT()么?
然后再generator() ;

还有就是翻译的时候,不要叫呼叫.....米国人叫"CALL" 繁体中文就叫"呼叫" 简体中文应该翻译成"调用" .
回复 支持 反对

使用道具 举报

发表于 2013-5-4 10:25:36 | 显示全部楼层
darkorigin 发表于 2013-5-3 23:33
pulseGen(int pin,int onInterval, int offInterval);
第一个参数就是 引脚。 就是你要在哪个脚输出波形 ...

好啊!有兴趣,这几天研究一下!谢谢楼主!
回复 支持 反对

使用道具 举报

发表于 2013-5-4 10:47:25 | 显示全部楼层
pulseGen_h 在哪儿下载库文件呢?没有库文件不能用啊
回复 支持 反对

使用道具 举报

发表于 2013-5-4 10:50:10 | 显示全部楼层
万马奔腾 发表于 2013-5-4 10:47
pulseGen_h 在哪儿下载库文件呢?没有库文件不能用啊

很明显,你没有把楼主的帖子看到尾....人家那么大的附件挂在那里.....
还有就是提供了2个地址说~
回复 支持 反对

使用道具 举报

发表于 2013-5-4 10:52:07 | 显示全部楼层
darkorigin 发表于 2013-5-4 10:50
很明显,你没有把楼主的帖子看到尾....人家那么大的附件挂在那里.....
还有就是提供了2个地址说~


库文件怎么使用啊,放在哪个位置啊
回复 支持 反对

使用道具 举报

发表于 2013-5-4 11:19:02 | 显示全部楼层
出现如此情况啊

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2013-5-4 22:11:56 | 显示全部楼层
万马奔腾 发表于 2013-5-4 10:52
库文件怎么使用啊,放在哪个位置啊

.......ARDUINO基本的教程。。。。所有的库文件。包括你以后买的各种器件的库文件,都要放进去的位置
\libraries
就是说你ARDUINO.EXE在的文件夹下有个LIBEARIES文件夹。。丢进去就好
不过不要多级目录,必须是下面有文件的。。。。嵌套一堆文件夹的没用
回复 支持 反对

使用道具 举报

发表于 2013-5-4 22:19:24 | 显示全部楼层
还有,就是ARDUINO的版本问题。。。。很多库文件只支持少数几个版本,,,,,
回复 支持 反对

使用道具 举报

发表于 2013-5-4 23:20:46 | 显示全部楼层
谢谢楼主和楼上,新手路过学习啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-6 22:30:18 | 显示全部楼层
darkorigin 发表于 2013-5-3 23:38
范例代码按照说明,好像有问题
不是说需要先调用INIT()么?
然后再generator() ;

非常感谢你的议建议
我会尽量记住, 以後翻译时会更加小心。谢谢。

欢迎提出其他建议, 谢谢。
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 01:27 , Processed in 0.043632 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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