Chris Styles
/
EA_OLED_Joystick
This example uses the OLED display and the joystick on the Embedded Artists bseboard
main.cpp@0:6a7d6162034d, 2010-03-02 (annotated)
- Committer:
- chris
- Date:
- Tue Mar 02 07:23:59 2010 +0000
- Revision:
- 0:6a7d6162034d
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chris | 0:6a7d6162034d | 1 | // example to test out OLED on mbed + XPresso baseboard, sford |
chris | 0:6a7d6162034d | 2 | |
chris | 0:6a7d6162034d | 3 | #include "mbed.h" |
chris | 0:6a7d6162034d | 4 | #include "EAOLED.h" |
chris | 0:6a7d6162034d | 5 | |
chris | 0:6a7d6162034d | 6 | // NOTE: The xpresso board does not provide the data/command signal to the mbed, so I added a wire: |
chris | 0:6a7d6162034d | 7 | // Connect: |
chris | 0:6a7d6162034d | 8 | // PIO2_7 of baseboard mbed socket (empty 2nd hole below mbed pin 21) |
chris | 0:6a7d6162034d | 9 | // to |
chris | 0:6a7d6162034d | 10 | // PIO0_8(p13) of J6 (7th hole down on left side of J6) |
chris | 0:6a7d6162034d | 11 | // to provide OLED data/command signal |
chris | 0:6a7d6162034d | 12 | |
chris | 0:6a7d6162034d | 13 | DigitalOut led(LED1); |
chris | 0:6a7d6162034d | 14 | |
chris | 0:6a7d6162034d | 15 | EAOLED oled(p5, p6, p7, p8, p25); // mosi, dnc, sclk, cs, power |
chris | 0:6a7d6162034d | 16 | BusIn js(p13, p14, p22, p23); // down, right, left, up |
chris | 0:6a7d6162034d | 17 | DigitalIn push (p12); |
chris | 0:6a7d6162034d | 18 | |
chris | 0:6a7d6162034d | 19 | int Cur_X = 48; |
chris | 0:6a7d6162034d | 20 | int Cur_Y = 32; |
chris | 0:6a7d6162034d | 21 | int Cur_Colour = 0xffffff; // white |
chris | 0:6a7d6162034d | 22 | |
chris | 0:6a7d6162034d | 23 | void plot (int); |
chris | 0:6a7d6162034d | 24 | |
chris | 0:6a7d6162034d | 25 | int main() { |
chris | 0:6a7d6162034d | 26 | |
chris | 0:6a7d6162034d | 27 | oled.cls(); |
chris | 0:6a7d6162034d | 28 | oled.printf("Hello World!"); |
chris | 0:6a7d6162034d | 29 | oled.locate(0,3); |
chris | 0:6a7d6162034d | 30 | oled.printf("I'm an OLED!"); |
chris | 0:6a7d6162034d | 31 | wait(1); |
chris | 0:6a7d6162034d | 32 | oled.cls(); |
chris | 0:6a7d6162034d | 33 | |
chris | 0:6a7d6162034d | 34 | oled.pixel(Cur_X,Cur_Y,Cur_Colour); |
chris | 0:6a7d6162034d | 35 | |
chris | 0:6a7d6162034d | 36 | while (1) { |
chris | 0:6a7d6162034d | 37 | plot(js); |
chris | 0:6a7d6162034d | 38 | wait (0.1); |
chris | 0:6a7d6162034d | 39 | } |
chris | 0:6a7d6162034d | 40 | } |
chris | 0:6a7d6162034d | 41 | |
chris | 0:6a7d6162034d | 42 | |
chris | 0:6a7d6162034d | 43 | void plot (int dir) { |
chris | 0:6a7d6162034d | 44 | |
chris | 0:6a7d6162034d | 45 | // clear the screen |
chris | 0:6a7d6162034d | 46 | if (push == 0) { |
chris | 0:6a7d6162034d | 47 | oled.cls(); |
chris | 0:6a7d6162034d | 48 | } |
chris | 0:6a7d6162034d | 49 | |
chris | 0:6a7d6162034d | 50 | // if possible, move down |
chris | 0:6a7d6162034d | 51 | else if (js == 0x7){ |
chris | 0:6a7d6162034d | 52 | if ( Cur_Y > 0) { |
chris | 0:6a7d6162034d | 53 | Cur_Y--; |
chris | 0:6a7d6162034d | 54 | oled.pixel(Cur_X,Cur_Y,Cur_Colour); |
chris | 0:6a7d6162034d | 55 | } |
chris | 0:6a7d6162034d | 56 | } |
chris | 0:6a7d6162034d | 57 | |
chris | 0:6a7d6162034d | 58 | // if possible, move right |
chris | 0:6a7d6162034d | 59 | else if (js == 0xb){ |
chris | 0:6a7d6162034d | 60 | if (Cur_X > 0) { |
chris | 0:6a7d6162034d | 61 | Cur_X--; |
chris | 0:6a7d6162034d | 62 | oled.pixel(Cur_X,Cur_Y,Cur_Colour); |
chris | 0:6a7d6162034d | 63 | } |
chris | 0:6a7d6162034d | 64 | } |
chris | 0:6a7d6162034d | 65 | |
chris | 0:6a7d6162034d | 66 | // if possible, move left |
chris | 0:6a7d6162034d | 67 | else if (js == 0xd){ |
chris | 0:6a7d6162034d | 68 | if (Cur_X < 96) { |
chris | 0:6a7d6162034d | 69 | Cur_X++; |
chris | 0:6a7d6162034d | 70 | oled.pixel(Cur_X,Cur_Y,Cur_Colour); |
chris | 0:6a7d6162034d | 71 | } |
chris | 0:6a7d6162034d | 72 | } |
chris | 0:6a7d6162034d | 73 | |
chris | 0:6a7d6162034d | 74 | // if possible, move up |
chris | 0:6a7d6162034d | 75 | else if (js == 0xe){ |
chris | 0:6a7d6162034d | 76 | if (Cur_Y < 64) { |
chris | 0:6a7d6162034d | 77 | Cur_Y++; |
chris | 0:6a7d6162034d | 78 | oled.pixel(Cur_X,Cur_Y,Cur_Colour); |
chris | 0:6a7d6162034d | 79 | } |
chris | 0:6a7d6162034d | 80 | } |
chris | 0:6a7d6162034d | 81 | } |