Demo code for LED/trackball functionality of the Blackberry Trackerball Breakout board
Trackball.h@0:8e91b1443453, 2015-10-20 (annotated)
- Committer:
- jkerickson
- Date:
- Tue Oct 20 21:11:52 2015 +0000
- Revision:
- 0:8e91b1443453
- Child:
- 1:f0caa0dfa669
Basic functionality of trackball/LEDs
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jkerickson | 0:8e91b1443453 | 1 | #include "mbed.h" |
| jkerickson | 0:8e91b1443453 | 2 | |
| jkerickson | 0:8e91b1443453 | 3 | #define dir_UP 1 |
| jkerickson | 0:8e91b1443453 | 4 | #define dir_DOWN 2 |
| jkerickson | 0:8e91b1443453 | 5 | #define dir_LEFT 3 |
| jkerickson | 0:8e91b1443453 | 6 | #define dir_RIGHT 4 |
| jkerickson | 0:8e91b1443453 | 7 | #define dir_BUTTON 5 |
| jkerickson | 0:8e91b1443453 | 8 | #define color_WHITE 1 |
| jkerickson | 0:8e91b1443453 | 9 | #define color_RED 2 |
| jkerickson | 0:8e91b1443453 | 10 | #define color_GREEN 3 |
| jkerickson | 0:8e91b1443453 | 11 | #define color_BLUE 4 |
| jkerickson | 0:8e91b1443453 | 12 | |
| jkerickson | 0:8e91b1443453 | 13 | //Setup a new class for a Trackball Module |
| jkerickson | 0:8e91b1443453 | 14 | class Trackball |
| jkerickson | 0:8e91b1443453 | 15 | { |
| jkerickson | 0:8e91b1443453 | 16 | public: |
| jkerickson | 0:8e91b1443453 | 17 | Trackball(PinName pin_btn, PinName pin_lft, PinName pin_rht, PinName pin_up, PinName pin_dwn, PinName pin_wht, PinName pin_grn, PinName pin_red, PinName pin_blu); |
| jkerickson | 0:8e91b1443453 | 18 | unsigned int read(int dir); |
| jkerickson | 0:8e91b1443453 | 19 | void write(unsigned int val, int color); |
| jkerickson | 0:8e91b1443453 | 20 | private: |
| jkerickson | 0:8e91b1443453 | 21 | //class sets up the pins |
| jkerickson | 0:8e91b1443453 | 22 | DigitalIn _pin_btn; |
| jkerickson | 0:8e91b1443453 | 23 | DigitalIn _pin_lft; |
| jkerickson | 0:8e91b1443453 | 24 | DigitalIn _pin_rht; |
| jkerickson | 0:8e91b1443453 | 25 | DigitalIn _pin_up; |
| jkerickson | 0:8e91b1443453 | 26 | DigitalIn _pin_dwn; |
| jkerickson | 0:8e91b1443453 | 27 | DigitalOut _pin_wht; |
| jkerickson | 0:8e91b1443453 | 28 | DigitalOut _pin_grn; |
| jkerickson | 0:8e91b1443453 | 29 | DigitalOut _pin_red; |
| jkerickson | 0:8e91b1443453 | 30 | DigitalOut _pin_blu; |
| jkerickson | 0:8e91b1443453 | 31 | }; |
| jkerickson | 0:8e91b1443453 | 32 | |
| jkerickson | 0:8e91b1443453 | 33 | Trackball::Trackball(PinName pin_btn, PinName pin_lft, PinName pin_rht, PinName pin_up, PinName pin_dwn, PinName pin_wht, PinName pin_grn, PinName pin_red, PinName pin_blu) |
| jkerickson | 0:8e91b1443453 | 34 | : _pin_btn(pin_btn), _pin_lft(pin_lft), _pin_rht(pin_rht), _pin_up(pin_up), _pin_dwn(pin_dwn), _pin_wht(pin_wht), _pin_grn(pin_grn), _pin_red(pin_red), _pin_blu(pin_blu) |
| jkerickson | 0:8e91b1443453 | 35 | { |
| jkerickson | 0:8e91b1443453 | 36 | //initialize all LED pins to off. |
| jkerickson | 0:8e91b1443453 | 37 | |
| jkerickson | 0:8e91b1443453 | 38 | _pin_wht = 0; |
| jkerickson | 0:8e91b1443453 | 39 | _pin_grn = 0; |
| jkerickson | 0:8e91b1443453 | 40 | _pin_red = 0; |
| jkerickson | 0:8e91b1443453 | 41 | _pin_blu = 0; |
| jkerickson | 0:8e91b1443453 | 42 | } |
| jkerickson | 0:8e91b1443453 | 43 | |
| jkerickson | 0:8e91b1443453 | 44 | void Trackball::write(unsigned int val, int color) |
| jkerickson | 0:8e91b1443453 | 45 | |
| jkerickson | 0:8e91b1443453 | 46 | { |
| jkerickson | 0:8e91b1443453 | 47 | if (color == color_WHITE){_pin_wht = val;} |
| jkerickson | 0:8e91b1443453 | 48 | else if(color == color_BLUE){_pin_blu = val;} |
| jkerickson | 0:8e91b1443453 | 49 | else if(color == color_GREEN){_pin_grn = val;} |
| jkerickson | 0:8e91b1443453 | 50 | else if(color == color_RED){_pin_red = val;} |
| jkerickson | 0:8e91b1443453 | 51 | else {printf("Invalid LED Color");} |
| jkerickson | 0:8e91b1443453 | 52 | } |
| jkerickson | 0:8e91b1443453 | 53 | unsigned int Trackball::read(int dir) |
| jkerickson | 0:8e91b1443453 | 54 | |
| jkerickson | 0:8e91b1443453 | 55 | { |
| jkerickson | 0:8e91b1443453 | 56 | unsigned int val; |
| jkerickson | 0:8e91b1443453 | 57 | if(dir == dir_UP){val = _pin_up;} |
| jkerickson | 0:8e91b1443453 | 58 | else if(dir == dir_DOWN){val = _pin_dwn;} |
| jkerickson | 0:8e91b1443453 | 59 | else if(dir == dir_RIGHT){val = _pin_rht;} |
| jkerickson | 0:8e91b1443453 | 60 | else if(dir == dir_LEFT){val = _pin_lft;} |
| jkerickson | 0:8e91b1443453 | 61 | else if(dir == dir_BUTTON){val = _pin_btn;} |
| jkerickson | 0:8e91b1443453 | 62 | else {val = 1;} |
| jkerickson | 0:8e91b1443453 | 63 | |
| jkerickson | 0:8e91b1443453 | 64 | return val; |
| jkerickson | 0:8e91b1443453 | 65 | |
| jkerickson | 0:8e91b1443453 | 66 | } |