Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: rotary_inc.hpp
- Revision:
- 0:ca84ed7518f5
- Child:
- 3:28c77df7c0b6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rotary_inc.hpp Thu Jan 02 09:30:06 2020 +0000
@@ -0,0 +1,50 @@
+#ifndef ROTARY_INC_H
+#define ROTARY_INC_H
+#include "mbed.h"
+#ifndef M_PI
+#define M_PI 3.14159265358979
+#endif
+
+/*ロータリーエンコーダーを使う。
+ *速度計測は、タイヤの円周とロリコンの分解能を指定した場合に有効になる。
+ *RotaryInc(PinName pinA, PinName pinB,double circumference,int Resolution,int mode = 0);//速度計測有効
+ *RotaryInc(PinName pinA, PinName pinB,int mode = 0);//速度計測無効
+ */
+//RotaryInc rotary(PA_1,PA_3,2 * 50.8 * M_PI,200);
+
+class RotaryInc{
+public:
+ RotaryInc(PinName userA, PinName userB,double circumference,int resolution,int mode = 0);//速度計測有効
+ RotaryInc(PinName userA, PinName userB,int mode = 0);//速度計測無効
+ ~RotaryInc();
+ long long get();
+ double getSpeed();
+ void reset();
+ int diff();
+private:
+ InterruptIn *A_,*B_;
+ Timer timer_;
+ long long pulse_;
+ long long last_[20];
+ long long prev_;
+ int count_;
+ int mode_;
+ int resolution_;
+ double now_;
+ double sum_;
+ double pre_t_[20];
+ double speed_;
+ double circumference_;
+ bool measur_;
+ bool start_frag_;
+ bool flag_;
+ void init(PinName,PinName);
+ void riseA(void);
+ void riseB(void);
+ void fallA(void);
+ void fallB(void);
+ void calcu(void);
+ void zero(void);
+};
+
+#endif /* ROTARY_INC_H */
\ No newline at end of file