This program is for operating OLED module of MAPLE Board and mbed1768

Dependencies:   mbed

Committer:
y_notsu
Date:
Thu Jan 03 13:12:04 2013 +0000
Revision:
0:53adaf7199b6
This program is for OLED module of MAPLE Board and mbed1768.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
y_notsu 0:53adaf7199b6 1 /** A sample app of MARMEX_OB OLED screen drawing library
y_notsu 0:53adaf7199b6 2 *
y_notsu 0:53adaf7199b6 3 * @author Tedd
y_notsu 0:53adaf7199b6 4 * @version 0.51
y_notsu 0:53adaf7199b6 5 * @date 08-Apr-2011
y_notsu 0:53adaf7199b6 6 *
y_notsu 0:53adaf7199b6 7 * Released under the MIT License: http://mbed.org/license/mit
y_notsu 0:53adaf7199b6 8 *
y_notsu 0:53adaf7199b6 9 * MARMEX_OB_oled OLED screen drawing library for mbed
y_notsu 0:53adaf7199b6 10 * This code has been written based on sample code and advises
y_notsu 0:53adaf7199b6 11 * from Ochiai-san (Marutsu-Elec). Thank you!
y_notsu 0:53adaf7199b6 12 *
y_notsu 0:53adaf7199b6 13 * To build this code, "NokiaLCD" and "mbed" libraries are needed to be imported in a project.
y_notsu 0:53adaf7199b6 14 * NokiaLCD library : http://mbed.org/users/simon/libraries/NokiaLCD/
y_notsu 0:53adaf7199b6 15 */
y_notsu 0:53adaf7199b6 16
y_notsu 0:53adaf7199b6 17
y_notsu 0:53adaf7199b6 18 #include "mbed.h"
y_notsu 0:53adaf7199b6 19 #include "MARMEX_OB_oled.h"
y_notsu 0:53adaf7199b6 20 #include "imagedata.h"
y_notsu 0:53adaf7199b6 21
y_notsu 0:53adaf7199b6 22 // oled1 is for MARMEX_OB_oled board on MAPLE slot 1
y_notsu 0:53adaf7199b6 23 // oled1 is for MARMEX_OB_oled board on MAPLE slot 2
y_notsu 0:53adaf7199b6 24
y_notsu 0:53adaf7199b6 25 MARMEX_OB_oled oled1( p5, p7, p8, p30, p11 ); // mosi, sclk, cs, rst, power_control
y_notsu 0:53adaf7199b6 26 //MARMEX_OB_oled oled2( p5, p7, p26, p21, p17 ); // mosi, sclk, cs, rst, power_control
y_notsu 0:53adaf7199b6 27
y_notsu 0:53adaf7199b6 28 void oled_image2(const unsigned int *ptr2);
y_notsu 0:53adaf7199b6 29
y_notsu 0:53adaf7199b6 30 int main() {
y_notsu 0:53adaf7199b6 31 oled1.background( 0x000000 );
y_notsu 0:53adaf7199b6 32 oled1.cls();
y_notsu 0:53adaf7199b6 33 /*
y_notsu 0:53adaf7199b6 34 int colorbar_width = MARMEX_OB_oled::WIDTH / 8;
y_notsu 0:53adaf7199b6 35
y_notsu 0:53adaf7199b6 36 for ( int i = 0; i < 8; i++ )
y_notsu 0:53adaf7199b6 37 oled1.fill( colorbar_width * i, 0, colorbar_width, MARMEX_OB_oled::HEIGHT, ((i & 0x4) ? 0xFF0000 : 0x000000) | ((i & 0x2) ? 0x00FF00 : 0x000000) | ((i & 0x1) ? 0x0000FF : 0x000000) );
y_notsu 0:53adaf7199b6 38
y_notsu 0:53adaf7199b6 39 oled1.fill( 50, 50, 64, 64, 0xCCCCCC );;
y_notsu 0:53adaf7199b6 40
y_notsu 0:53adaf7199b6 41 oled1.locate( 0, 3 );
y_notsu 0:53adaf7199b6 42 oled1.printf( "Hello World!" );
y_notsu 0:53adaf7199b6 43 oled1.locate( 0, 4 );
y_notsu 0:53adaf7199b6 44 oled1.printf( "SPI = %s", MERMEX_OB_SPI_MODE_STR );
y_notsu 0:53adaf7199b6 45
y_notsu 0:53adaf7199b6 46 for (int i = 0; i < MARMEX_OB_oled::WIDTH; i++ ) {
y_notsu 0:53adaf7199b6 47 oled1.pixel( i, 80 + sin( (float)i / 5.0 ) * 10, 0x000000 );
y_notsu 0:53adaf7199b6 48 }
y_notsu 0:53adaf7199b6 49 */
y_notsu 0:53adaf7199b6 50
y_notsu 0:53adaf7199b6 51
y_notsu 0:53adaf7199b6 52
y_notsu 0:53adaf7199b6 53
y_notsu 0:53adaf7199b6 54 oled1.locate(0,1);
y_notsu 0:53adaf7199b6 55 oled1.printf("Takoruka OS");
y_notsu 0:53adaf7199b6 56 oled1.locate(0,2);
y_notsu 0:53adaf7199b6 57 oled1.printf("starting.");
y_notsu 0:53adaf7199b6 58 wait(1.0);
y_notsu 0:53adaf7199b6 59 oled1.printf(".");
y_notsu 0:53adaf7199b6 60 wait(1.0);
y_notsu 0:53adaf7199b6 61 oled1.printf(".");
y_notsu 0:53adaf7199b6 62 wait(1.0);
y_notsu 0:53adaf7199b6 63 oled1.printf(".");
y_notsu 0:53adaf7199b6 64 wait(1.0);
y_notsu 0:53adaf7199b6 65 oled1.locate(0,3);
y_notsu 0:53adaf7199b6 66 oled1.printf("done!");
y_notsu 0:53adaf7199b6 67
y_notsu 0:53adaf7199b6 68 wait(1.0);
y_notsu 0:53adaf7199b6 69 oled1.cls();
y_notsu 0:53adaf7199b6 70 oled1.locate(0,0);
y_notsu 0:53adaf7199b6 71 oled_image2(Header1);
y_notsu 0:53adaf7199b6 72
y_notsu 0:53adaf7199b6 73
y_notsu 0:53adaf7199b6 74
y_notsu 0:53adaf7199b6 75
y_notsu 0:53adaf7199b6 76 }
y_notsu 0:53adaf7199b6 77
y_notsu 0:53adaf7199b6 78 void oled_image2(const unsigned int *ptr2)
y_notsu 0:53adaf7199b6 79 {
y_notsu 0:53adaf7199b6 80 short height,width;
y_notsu 0:53adaf7199b6 81 int colour;
y_notsu 0:53adaf7199b6 82 height = *ptr2;
y_notsu 0:53adaf7199b6 83 ptr2++;
y_notsu 0:53adaf7199b6 84 width = *ptr2;
y_notsu 0:53adaf7199b6 85 ptr2++;
y_notsu 0:53adaf7199b6 86 oled1.locate(0,0);
y_notsu 0:53adaf7199b6 87 for(int i=1;i<=width;i++)
y_notsu 0:53adaf7199b6 88 {
y_notsu 0:53adaf7199b6 89 for(int j=1;j<=height;j++)
y_notsu 0:53adaf7199b6 90 {
y_notsu 0:53adaf7199b6 91 colour = (((*ptr2&0xF800)<<8) | ((*ptr2&0x07E0)<<5) | ((*ptr2&0x001F)<<3)); //for BGR888
y_notsu 0:53adaf7199b6 92 //colour = (((*ptr2&0xF800)) | ((*ptr2&0x07E)<<5) | ((*ptr2&0x01F)<<3)); //for RGB888
y_notsu 0:53adaf7199b6 93 oled1.pixel(j,i,colour);
y_notsu 0:53adaf7199b6 94 ptr2++;
y_notsu 0:53adaf7199b6 95 }
y_notsu 0:53adaf7199b6 96 }
y_notsu 0:53adaf7199b6 97 }
y_notsu 0:53adaf7199b6 98
y_notsu 0:53adaf7199b6 99 /*
y_notsu 0:53adaf7199b6 100 * history:
y_notsu 0:53adaf7199b6 101 * 0.5 (2011-Apr-07) : initial published version
y_notsu 0:53adaf7199b6 102 * 0.51 (2011-Apr-08) : minor modification to make the source more consistent (use " MARMEX_OB_oled::HEIGHT" instead of 128)
y_notsu 0:53adaf7199b6 103 */