UT CS Bootcamp code for creating a secret knock
Dependencies: MMA8451Q mbed tsi_sensor
Fork of UTCSBootcamp by
KnockAPI.cpp@11:0ac08d8a296f, 2014-08-22 (annotated)
- Committer:
- parnell
- Date:
- Fri Aug 22 19:52:08 2014 +0000
- Revision:
- 11:0ac08d8a296f
- Parent:
- 10:351ba1920e42
Revised with touch sensor;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
parnell | 9:0ba1973c3bd3 | 1 | #include "KnockAPI.h" |
parnell | 9:0ba1973c3bd3 | 2 | #include "Includes/KnockBaseAPI.h" |
parnell | 9:0ba1973c3bd3 | 3 | |
parnell | 9:0ba1973c3bd3 | 4 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
parnell | 9:0ba1973c3bd3 | 5 | |
parnell | 9:0ba1973c3bd3 | 6 | Timer timer; |
parnell | 9:0ba1973c3bd3 | 7 | |
parnell | 9:0ba1973c3bd3 | 8 | void print(const char* msg, ...){ |
parnell | 9:0ba1973c3bd3 | 9 | char buffer[256]; |
parnell | 9:0ba1973c3bd3 | 10 | va_list args; |
parnell | 9:0ba1973c3bd3 | 11 | va_start (args, msg); |
parnell | 9:0ba1973c3bd3 | 12 | vsprintf (buffer,msg, args); |
parnell | 9:0ba1973c3bd3 | 13 | va_end (args); |
parnell | 9:0ba1973c3bd3 | 14 | port.printf(buffer); |
parnell | 9:0ba1973c3bd3 | 15 | } |
parnell | 9:0ba1973c3bd3 | 16 | |
parnell | 9:0ba1973c3bd3 | 17 | /************************************************ |
parnell | 9:0ba1973c3bd3 | 18 | * timing functions |
parnell | 9:0ba1973c3bd3 | 19 | ***********************************************/ |
parnell | 9:0ba1973c3bd3 | 20 | |
parnell | 9:0ba1973c3bd3 | 21 | int getTime(){ |
parnell | 9:0ba1973c3bd3 | 22 | int time = timer.read_ms(); |
parnell | 9:0ba1973c3bd3 | 23 | if(debug) print("getTime() = %d\r\n",time); |
parnell | 9:0ba1973c3bd3 | 24 | return time; |
parnell | 9:0ba1973c3bd3 | 25 | } |
parnell | 9:0ba1973c3bd3 | 26 | |
parnell | 9:0ba1973c3bd3 | 27 | void markTime(){ |
parnell | 9:0ba1973c3bd3 | 28 | if(debug) print("markTime()\r\n"); |
parnell | 9:0ba1973c3bd3 | 29 | timer.start(); |
parnell | 9:0ba1973c3bd3 | 30 | } |
parnell | 9:0ba1973c3bd3 | 31 | |
parnell | 9:0ba1973c3bd3 | 32 | void sleep(float milliseconds){ |
parnell | 9:0ba1973c3bd3 | 33 | if(debug) print("sleep(%f)\r\n",milliseconds); |
parnell | 9:0ba1973c3bd3 | 34 | wait(milliseconds / 1000); |
parnell | 9:0ba1973c3bd3 | 35 | } |
parnell | 9:0ba1973c3bd3 | 36 | |
parnell | 9:0ba1973c3bd3 | 37 | /******************************** INPUTS AND OUTPUTS ********************************/ |
parnell | 9:0ba1973c3bd3 | 38 | |
parnell | 9:0ba1973c3bd3 | 39 | void redLED(bool on){ |
parnell | 11:0ac08d8a296f | 40 | if(debug) print("blueLED(%d) \r\n", on); |
parnell | 11:0ac08d8a296f | 41 | setLED(!on, 1, 1); |
parnell | 9:0ba1973c3bd3 | 42 | } |
parnell | 9:0ba1973c3bd3 | 43 | |
parnell | 9:0ba1973c3bd3 | 44 | void greenLED(bool on){ |
parnell | 11:0ac08d8a296f | 45 | if(debug) print("blueLED(%d) \r\n", on); |
parnell | 11:0ac08d8a296f | 46 | setLED(1, !on, 1); |
parnell | 9:0ba1973c3bd3 | 47 | } |
parnell | 9:0ba1973c3bd3 | 48 | |
parnell | 9:0ba1973c3bd3 | 49 | void blueLED(bool on){ |
parnell | 11:0ac08d8a296f | 50 | if(debug) print("blueLED(%d) \r\n", on); |
parnell | 11:0ac08d8a296f | 51 | setLED(1, 1, !on); |
parnell | 10:351ba1920e42 | 52 | } |
parnell | 10:351ba1920e42 | 53 | |
parnell | 11:0ac08d8a296f | 54 | void setLED(float r, float g, float b){ |
parnell | 11:0ac08d8a296f | 55 | rl.write(r); |
parnell | 11:0ac08d8a296f | 56 | gl.write(g); |
parnell | 11:0ac08d8a296f | 57 | bl.write(b); |
parnell | 11:0ac08d8a296f | 58 | if(debug) print("setLED(%f,%f,%f) \r\n", r,g,b); |
parnell | 9:0ba1973c3bd3 | 59 | } |
parnell | 9:0ba1973c3bd3 | 60 | |
parnell | 9:0ba1973c3bd3 | 61 | void setDebug(bool _debug){ |
parnell | 9:0ba1973c3bd3 | 62 | if(debug) print("setDebug()= %d\r\n", _debug); |
parnell | 9:0ba1973c3bd3 | 63 | debug = _debug; |
parnell | 9:0ba1973c3bd3 | 64 | } |
parnell | 9:0ba1973c3bd3 | 65 | |
parnell | 9:0ba1973c3bd3 | 66 | |
parnell | 11:0ac08d8a296f | 67 | Accelerometer& getAccelerometer(){ |
parnell | 9:0ba1973c3bd3 | 68 | return accelerometer; |
parnell | 9:0ba1973c3bd3 | 69 | } |
parnell | 9:0ba1973c3bd3 | 70 | |
parnell | 9:0ba1973c3bd3 | 71 | Serial getSerialPort(){ |
parnell | 9:0ba1973c3bd3 | 72 | return port; |
parnell | 9:0ba1973c3bd3 | 73 | } |
parnell | 9:0ba1973c3bd3 | 74 | |
parnell | 9:0ba1973c3bd3 | 75 | |
parnell | 9:0ba1973c3bd3 | 76 | /************************************************ |
parnell | 9:0ba1973c3bd3 | 77 | * init/finish functions |
parnell | 9:0ba1973c3bd3 | 78 | ***********************************************/ |
parnell | 9:0ba1973c3bd3 | 79 | |
parnell | 9:0ba1973c3bd3 | 80 | |
parnell | 9:0ba1973c3bd3 | 81 | void init(){ |
parnell | 9:0ba1973c3bd3 | 82 | _initialize(); |
parnell | 9:0ba1973c3bd3 | 83 | markTime(); |
parnell | 9:0ba1973c3bd3 | 84 | } |
parnell | 9:0ba1973c3bd3 | 85 | |
parnell | 9:0ba1973c3bd3 | 86 | void finish(){ |
parnell | 9:0ba1973c3bd3 | 87 | _finish(); |
parnell | 9:0ba1973c3bd3 | 88 | } |