|
楼主 |
发表于 2012-7-15 09:14:05
|
显示全部楼层
本帖最后由 zslibra 于 2012-7-15 09:43 编辑
看来没有系统标准库了,只能自己写个库解决了,发上来给大家看看
Pushcounter.h- #ifndef Pushcounter_h
- #define Pushcounter_h
- class Pushcounter
- {
- public:
- Pushcounter(int buttonpin);
- int counter();
- private:
- int _buttonpin;
- int _buttonpush1,_buttonpush2;
- int _buttonrelease1,_buttonrelease2;
- int _debounceDelay;
- unsigned int _count;
- };
- #endif
复制代码
Pushcounter.cpp
- #include "Arduino.h"
- #include "Pushcounter.h"
- Pushcounter::Pushcounter(int buttonpin)
- {
- pinMode(buttonpin, INPUT);
- _buttonpin = buttonpin;
- _count=1;
- _debounceDelay=50;
- }
- int Pushcounter::counter()
- {
- while(true) {
- _buttonpush1=digitalRead(_buttonpin);
- delay(_debounceDelay); _buttonpush2=digitalRead(_buttonpin);
- if(_buttonpush1 && _buttonpush2) break; //每个状态读取两次,防止因噪声造成误判
- else continue;
- }
-
- while(true) {
- _buttonrelease1=digitalRead(_buttonpin);
- delay(_debounceDelay);
- _buttonrelease2=digitalRead(_buttonpin);
- if(!_buttonrelease1 && !_buttonrelease2) break;
- else continue;
- }
-
- return(_count++);
- }
复制代码 |
|