This example uses the OLED display and the joystick on the Embedded Artists bseboard

Dependencies:   mbed

Committer:
chris
Date:
Tue Mar 02 07:23:59 2010 +0000
Revision:
0:6a7d6162034d

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }