Demo code for LED/trackball functionality of the Blackberry Trackerball Breakout board

Dependencies:   Trackball mbed

Committer:
jkerickson
Date:
Wed Oct 21 19:03:48 2015 +0000
Revision:
1:f0caa0dfa669
Parent:
0:8e91b1443453
Final updates

Who changed what in which revision?

UserRevisionLine numberNew 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 1:f0caa0dfa669 42
jkerickson 0:8e91b1443453 43 }
jkerickson 0:8e91b1443453 44
jkerickson 0:8e91b1443453 45 void Trackball::write(unsigned int val, int color)
jkerickson 0:8e91b1443453 46
jkerickson 0:8e91b1443453 47 {
jkerickson 0:8e91b1443453 48 if (color == color_WHITE){_pin_wht = val;}
jkerickson 0:8e91b1443453 49 else if(color == color_BLUE){_pin_blu = val;}
jkerickson 0:8e91b1443453 50 else if(color == color_GREEN){_pin_grn = val;}
jkerickson 0:8e91b1443453 51 else if(color == color_RED){_pin_red = val;}
jkerickson 0:8e91b1443453 52 else {printf("Invalid LED Color");}
jkerickson 0:8e91b1443453 53 }
jkerickson 0:8e91b1443453 54 unsigned int Trackball::read(int dir)
jkerickson 0:8e91b1443453 55
jkerickson 0:8e91b1443453 56 {
jkerickson 0:8e91b1443453 57 unsigned int val;
jkerickson 0:8e91b1443453 58 if(dir == dir_UP){val = _pin_up;}
jkerickson 0:8e91b1443453 59 else if(dir == dir_DOWN){val = _pin_dwn;}
jkerickson 0:8e91b1443453 60 else if(dir == dir_RIGHT){val = _pin_rht;}
jkerickson 0:8e91b1443453 61 else if(dir == dir_LEFT){val = _pin_lft;}
jkerickson 0:8e91b1443453 62 else if(dir == dir_BUTTON){val = _pin_btn;}
jkerickson 0:8e91b1443453 63 return val;
jkerickson 0:8e91b1443453 64
jkerickson 1:f0caa0dfa669 65 }