Source code for the Curilights Controller. See http://www.saccade.com/writing/projects/CuriController/ for details.

Dependencies:   FatFileSystem mbed

This is the source code for the Curilights controller. This lets you interactively control a string of Curilights. It provides a simple click-wheel user interface for changing colors, brightness and behavior. It responds to movement and lighting.

Finished Controller

/media/uploads/isonno/nxp3872_controllerclose.jpg

System Block Diagram

/media/uploads/isonno/blockdiagram.png

Committer:
isonno
Date:
Thu Dec 29 01:59:53 2011 +0000
Revision:
0:6da5625a6946
Contest submission version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isonno 0:6da5625a6946 1 // Rotary Encoder
isonno 0:6da5625a6946 2 // Support for the rotary encoder control,
isonno 0:6da5625a6946 3 // typically a knob with quadrature output.
isonno 0:6da5625a6946 4
isonno 0:6da5625a6946 5 #ifndef _ROTARY_ENCODER_
isonno 0:6da5625a6946 6 #define _ROTARY_ENCODER_
isonno 0:6da5625a6946 7
isonno 0:6da5625a6946 8 #ifndef MBED_H
isonno 0:6da5625a6946 9 #include "mbed.h"
isonno 0:6da5625a6946 10 #endif
isonno 0:6da5625a6946 11
isonno 0:6da5625a6946 12 #ifndef AJK_PIN_DETECT_H
isonno 0:6da5625a6946 13 #include "PinDetect.h"
isonno 0:6da5625a6946 14 #endif
isonno 0:6da5625a6946 15
isonno 0:6da5625a6946 16 #ifndef AJK_FPOINTER_H
isonno 0:6da5625a6946 17 #include "FPointer.h"
isonno 0:6da5625a6946 18 #endif
isonno 0:6da5625a6946 19
isonno 0:6da5625a6946 20 class RotaryEncoder
isonno 0:6da5625a6946 21 {
isonno 0:6da5625a6946 22 public:
isonno 0:6da5625a6946 23 RotaryEncoder( PinName a, PinName b, PinMode mode = PullDown );
isonno 0:6da5625a6946 24
isonno 0:6da5625a6946 25 void attach( int32_t (*function)(int32_t) = 0)
isonno 0:6da5625a6946 26 { fCallback.attach( function ); }
isonno 0:6da5625a6946 27
isonno 0:6da5625a6946 28 template<typename T>
isonno 0:6da5625a6946 29 void attach(T* item, int32_t (T::*method)(int32_t))
isonno 0:6da5625a6946 30 { fCallback.attach( item, method ); }
isonno 0:6da5625a6946 31
isonno 0:6da5625a6946 32 void detach() { fCallback = FPointer(); }
isonno 0:6da5625a6946 33
isonno 0:6da5625a6946 34 private:
isonno 0:6da5625a6946 35 DigitalIn fPinA;
isonno 0:6da5625a6946 36 PinDetect fPinB;
isonno 0:6da5625a6946 37
isonno 0:6da5625a6946 38 FPointer fCallback;
isonno 0:6da5625a6946 39
isonno 0:6da5625a6946 40 void debug( const char *where );
isonno 0:6da5625a6946 41
isonno 0:6da5625a6946 42 void bRise();
isonno 0:6da5625a6946 43
isonno 0:6da5625a6946 44 };
isonno 0:6da5625a6946 45 #endif