本帖最后由 学长 于 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 在 压缩包内 - /*
- pulseGen.h - Library for Pulse Generator
- Created by Andy Huang, May,2,2013.
- Tradition Chinese Forum [url]http://bbs.game7777.net[/url]
- Tradition Chinese wiki [url]http://www.game7777.net[/url]
-
- 特性:
- 1. 不停止 cpu 运行, 不使用 delay() delaymicroseconds() 。
- 2. 脉冲计数。
- 3. 指定脉冲 on off 时间, us 微秒。
- 4. 可同时使用多个引脚进行不同脉冲。
-
- 使用方式:
- 1. 建构时指定 引脚 on时间 off 时间
- 2. 每个循环呼叫 generator()
- 3. 暂时不需要脉冲时, 停止呼叫 generator() 即可
- 4. 重新需要输出脉冲时,必须先呼叫 init() 一次。时间及计数归零。
- 注意事项:
- 1. 暂停後重新启动脉冲, 如果未先呼叫 init() , 第一次所产生的脉冲时长最多可能达到71.5分钟。
-
-
- */
- #ifndef pulseGen_h
- #define pulseGen_h
- #include "Arduino.h"
- class pulseGen{
- public:
- /* 建立 pulse
- /* @param pin 第几引脚
- /* @param onInterval 脉冲 ON 的时间 微秒 us
- /* @param offInterval 脉冲 OFF 的时间 微秒 us
- */
- pulseGen(int pin,int onInterval, int offInterval);
-
- /* 重新初始化
- /* @param onInterval 脉冲 ON 的时间 微秒 us
- /* @param offInterval 脉冲 OFF 的时间 微秒 us
- */
- void init(int onInterval, int offInterval);
-
- /* 执行
- */
- void generator();
-
-
- private:
- int _pin; //指定引脚
- unsigned long pulseOnInterval; //on时间
- unsigned long pulseOffInterval; //off时间
-
- unsigned long oldTime; //比对用
- unsigned long newTime; //比对用
-
- bool pulseState; //脉冲状态
- };
- #endif
复制代码
简单易用
再贴个范例好了
- #include <pulseGen.h>
- pulseGen pulse1(7,100,100); //七号引脚,产生 100us on 及 100us off 的脉冲
- void setup() {
- }
- void loop() {
- pulse1.generator();
-
- }
复制代码
|