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

Dependencies:   Trackball mbed

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?

UserRevisionLine numberNew contents of line
jkerickson 0:8e91b1443453 1 #include "mbed.h"
jkerickson 0:8e91b1443453 2 #include "Trackball.h"
jkerickson 0:8e91b1443453 3
jkerickson 0:8e91b1443453 4 //set up the trackball
jkerickson 0:8e91b1443453 5
jkerickson 0:8e91b1443453 6 Trackball trackball(p12, p13, p14, p15, p16, p17, p18, p19, p20);
jkerickson 0:8e91b1443453 7 Serial pc(USBTX, USBRX);
jkerickson 0:8e91b1443453 8
jkerickson 0:8e91b1443453 9 DigitalOut led1(LED1);
jkerickson 0:8e91b1443453 10 DigitalOut led2(LED2);
jkerickson 0:8e91b1443453 11 DigitalOut led3(LED3);
jkerickson 0:8e91b1443453 12 DigitalOut led4(LED4);
jkerickson 0:8e91b1443453 13
jkerickson 0:8e91b1443453 14 int main() {
jkerickson 0:8e91b1443453 15
jkerickson 0:8e91b1443453 16 //initial LED testing
jkerickson 0:8e91b1443453 17 //turn on each color for 2 seconds
jkerickson 0:8e91b1443453 18
jkerickson 0:8e91b1443453 19 trackball.write(1, color_WHITE);
jkerickson 0:8e91b1443453 20 wait(2);
jkerickson 0:8e91b1443453 21 trackball.write(0, color_WHITE);
jkerickson 0:8e91b1443453 22 trackball.write(1, color_BLUE);
jkerickson 0:8e91b1443453 23 wait(2);
jkerickson 0:8e91b1443453 24 trackball.write(0, color_BLUE);
jkerickson 0:8e91b1443453 25 trackball.write(1, color_GREEN);
jkerickson 0:8e91b1443453 26 wait(2);
jkerickson 0:8e91b1443453 27 trackball.write(0, color_GREEN);
jkerickson 0:8e91b1443453 28 trackball.write(1, color_RED);
jkerickson 0:8e91b1443453 29 wait(2);
jkerickson 0:8e91b1443453 30 trackball.write(0, color_RED);
jkerickson 0:8e91b1443453 31
jkerickson 0:8e91b1443453 32 int x_pos = 0;
jkerickson 0:8e91b1443453 33 int y_pos = 0;
jkerickson 0:8e91b1443453 34
jkerickson 0:8e91b1443453 35 while(1) {
jkerickson 0:8e91b1443453 36 //read the pins
jkerickson 0:8e91b1443453 37 //if LFT,RHT,UP,DWN,or BTN are 0
jkerickson 0:8e91b1443453 38 //write out to the colored LEDs
jkerickson 0:8e91b1443453 39 //keep track of x and y positions
jkerickson 0:8e91b1443453 40 //wait .2
jkerickson 0:8e91b1443453 41
jkerickson 0:8e91b1443453 42 //make sure to turn off all other color LEDS when turning on a new one.
jkerickson 0:8e91b1443453 43 //keeping the writes inside the if statements prevents flashing of the LED if it is already on and needs to stay on.
jkerickson 0:8e91b1443453 44
jkerickson 0:8e91b1443453 45 if(trackball.read(dir_UP) == 0){
jkerickson 0:8e91b1443453 46 y_pos++;
jkerickson 0:8e91b1443453 47 trackball.write(1, color_WHITE);
jkerickson 0:8e91b1443453 48 trackball.write(0, color_GREEN);
jkerickson 0:8e91b1443453 49 trackball.write(0, color_BLUE);
jkerickson 0:8e91b1443453 50 trackball.write(0, color_RED);
jkerickson 0:8e91b1443453 51 }
jkerickson 0:8e91b1443453 52 else if(trackball.read(dir_DOWN) == 0){
jkerickson 0:8e91b1443453 53 y_pos--;
jkerickson 0:8e91b1443453 54 trackball.write(1, color_GREEN);
jkerickson 0:8e91b1443453 55 trackball.write(0, color_WHITE);
jkerickson 0:8e91b1443453 56 trackball.write(0, color_BLUE);
jkerickson 0:8e91b1443453 57 trackball.write(0, color_RED);
jkerickson 0:8e91b1443453 58 }
jkerickson 0:8e91b1443453 59 else if(trackball.read(dir_LEFT) == 0){
jkerickson 0:8e91b1443453 60 x_pos--;
jkerickson 0:8e91b1443453 61 trackball.write(1, color_BLUE);
jkerickson 0:8e91b1443453 62 trackball.write(0, color_WHITE);
jkerickson 0:8e91b1443453 63 trackball.write(0, color_GREEN);
jkerickson 0:8e91b1443453 64 trackball.write(0, color_RED);
jkerickson 0:8e91b1443453 65 }
jkerickson 0:8e91b1443453 66 else if(trackball.read(dir_RIGHT) == 0){
jkerickson 0:8e91b1443453 67 x_pos++;
jkerickson 0:8e91b1443453 68 trackball.write(1, color_RED);
jkerickson 0:8e91b1443453 69 trackball.write(0, color_WHITE);
jkerickson 0:8e91b1443453 70 trackball.write(0, color_GREEN);
jkerickson 0:8e91b1443453 71 trackball.write(0, color_BLUE);
jkerickson 0:8e91b1443453 72 }
jkerickson 0:8e91b1443453 73 else if(trackball.read(dir_BUTTON) == 0){
jkerickson 0:8e91b1443453 74 pc.printf("Button pressed.");
jkerickson 0:8e91b1443453 75 }
jkerickson 0:8e91b1443453 76 pc.printf("X pos: %d, Y pos: %d\n", x_pos, y_pos);
jkerickson 0:8e91b1443453 77 wait(.2);
jkerickson 0:8e91b1443453 78 }
jkerickson 0:8e91b1443453 79 }