极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11722|回复: 5

Arduino有没有统计某针脚触发次数的库函数?

[复制链接]
发表于 2012-7-14 19:43:26 | 显示全部楼层 |阅读模式
本帖最后由 zslibra 于 2012-7-15 09:44 编辑

Arduino有没有统计某针脚触发次数的库函数?

比如说arduino基础中的按钮实验,统计一下按钮按下次数。
个人感觉这个函数还是很有用的,可以通过按键次数来触发某些过程。
回复

使用道具 举报

发表于 2012-7-14 20:25:23 | 显示全部楼层
pluseIn  脉冲出发函数,然后计数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-14 21:03:53 | 显示全部楼层
pulseIn返回的是时间,怎样计数呢?能否写一个例程参考一下
请指教~~
回复 支持 反对

使用道具 举报

发表于 2012-7-14 23:35:34 | 显示全部楼层
for循环不就好了么?一直检测0-13口的电位变化,变一次加一~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-15 09:14:05 | 显示全部楼层
本帖最后由 zslibra 于 2012-7-15 09:43 编辑

看来没有系统标准库了,只能自己写个库解决了,发上来给大家看看

Pushcounter.h
  1. #ifndef Pushcounter_h
  2. #define Pushcounter_h

  3. class Pushcounter
  4. {
  5.   public:
  6.     Pushcounter(int buttonpin);
  7.     int counter();
  8.   private:
  9.     int _buttonpin;
  10.     int _buttonpush1,_buttonpush2;
  11.     int _buttonrelease1,_buttonrelease2;
  12.     int _debounceDelay;
  13.     unsigned int _count;
  14. };
  15. #endif
复制代码


Pushcounter.cpp

  1. #include "Arduino.h"
  2. #include "Pushcounter.h"

  3. Pushcounter::Pushcounter(int buttonpin)
  4. {
  5.   pinMode(buttonpin, INPUT);
  6.   _buttonpin = buttonpin;
  7.   _count=1;
  8.   _debounceDelay=50;
  9. }

  10. int Pushcounter::counter()
  11. {
  12.   while(true) {
  13.     _buttonpush1=digitalRead(_buttonpin);
  14.     delay(_debounceDelay);                                                                _buttonpush2=digitalRead(_buttonpin);
  15.     if(_buttonpush1 && _buttonpush2) break;                                 //每个状态读取两次,防止因噪声造成误判
  16.     else continue;
  17.   }

  18.   while(true) {
  19.     _buttonrelease1=digitalRead(_buttonpin);
  20.     delay(_debounceDelay);
  21.     _buttonrelease2=digitalRead(_buttonpin);
  22.     if(!_buttonrelease1 && !_buttonrelease2) break;
  23.     else continue;
  24.   }
  25.   
  26.   return(_count++);
  27. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2012-10-30 09:05:04 | 显示全部楼层
zslibra 发表于 2012-7-15 09:14
看来没有系统标准库了,只能自己写个库解决了,发上来给大家看看

Pushcounter.h#ifndef Pushcounter_h

楼主,能不能提供一个主程序范例。小弟初学,不太会看库程序。
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 09:03 , Processed in 0.040061 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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