James Grant
/
NewMobileLCD
Revision 0:9b63dfb366dd, committed 2010-07-02
- Comitter:
- jigr69
- Date:
- Fri Jul 02 15:36:51 2010 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 9b63dfb366dd MobileLCD.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MobileLCD.cpp Fri Jul 02 15:36:51 2010 +0000 @@ -0,0 +1,652 @@ +/* mbed Library - MobileLCD + * Copyright (c) 2007, sford + */ + +#include "MobileLCD.h" + +#include "mbed.h" + +#include "Terminal.h" + +Terminal term(USBTX, USBRX); // tx, rx + +using namespace mbed; + +const unsigned char FONT6x8[97][8] = { + 0x06,0x08,0x08,0x00,0x00,0x00,0x00,0x00, // columns, rows, num_bytes_per_char + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // space 0x20 + 0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00, // ! + 0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00, // " + 0x50,0x50,0xF8,0x50,0xF8,0x50,0x50,0x00, // # + 0x20,0x78,0xA0,0x70,0x28,0xF0,0x20,0x00, // $ + 0xC0,0xC8,0x10,0x20,0x40,0x98,0x18,0x00, // % + 0x40,0xA0,0xA0,0x40,0xA8,0x90,0x68,0x00, // & + 0x30,0x30,0x20,0x40,0x00,0x00,0x00,0x00, // ' + 0x10,0x20,0x40,0x40,0x40,0x20,0x10,0x00, // ( + 0x40,0x20,0x10,0x10,0x10,0x20,0x40,0x00, // ) + 0x00,0x20,0xA8,0x70,0x70,0xA8,0x20,0x00, // * + 0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00, // + + 0x00,0x00,0x00,0x00,0x30,0x30,0x20,0x40, // , + 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00, // - + 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00, // . + 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00, // / (forward slash) + 0x70,0x88,0x88,0xA8,0x88,0x88,0x70,0x00, // 0 0x30 + 0x20,0x60,0x20,0x20,0x20,0x20,0x70,0x00, // 1 + 0x70,0x88,0x08,0x70,0x80,0x80,0xF8,0x00, // 2 + 0xF8,0x08,0x10,0x30,0x08,0x88,0x70,0x00, // 3 + 0x10,0x30,0x50,0x90,0xF8,0x10,0x10,0x00, // 4 + 0xF8,0x80,0xF0,0x08,0x08,0x88,0x70,0x00, // 5 + 0x38,0x40,0x80,0xF0,0x88,0x88,0x70,0x00, // 6 + 0xF8,0x08,0x08,0x10,0x20,0x40,0x80,0x00, // 7 + 0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x00, // 8 + 0x70,0x88,0x88,0x78,0x08,0x10,0xE0,0x00, // 9 + 0x00,0x00,0x20,0x00,0x20,0x00,0x00,0x00, // : + 0x00,0x00,0x20,0x00,0x20,0x20,0x40,0x00, // ; + 0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00, // < + 0x00,0x00,0xF8,0x00,0xF8,0x00,0x00,0x00, // = + 0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x00, // > + 0x70,0x88,0x08,0x30,0x20,0x00,0x20,0x00, // ? + 0x70,0x88,0xA8,0xB8,0xB0,0x80,0x78,0x00, // @ 0x40 + 0x20,0x50,0x88,0x88,0xF8,0x88,0x88,0x00, // A + 0xF0,0x88,0x88,0xF0,0x88,0x88,0xF0,0x00, // B + 0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00, // C + 0xF0,0x88,0x88,0x88,0x88,0x88,0xF0,0x00, // D + 0xF8,0x80,0x80,0xF0,0x80,0x80,0xF8,0x00, // E + 0xF8,0x80,0x80,0xF0,0x80,0x80,0x80,0x00, // F + 0x78,0x88,0x80,0x80,0x98,0x88,0x78,0x00, // G + 0x88,0x88,0x88,0xF8,0x88,0x88,0x88,0x00, // H + 0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00, // I + 0x38,0x10,0x10,0x10,0x10,0x90,0x60,0x00, // J + 0x88,0x90,0xA0,0xC0,0xA0,0x90,0x88,0x00, // K + 0x80,0x80,0x80,0x80,0x80,0x80,0xF8,0x00, // L + 0x88,0xD8,0xA8,0xA8,0xA8,0x88,0x88,0x00, // M + 0x88,0x88,0xC8,0xA8,0x98,0x88,0x88,0x00, // N + 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00, // O + 0xF0,0x88,0x88,0xF0,0x80,0x80,0x80,0x00, // P 0x50 + 0x70,0x88,0x88,0x88,0xA8,0x90,0x68,0x00, // Q + 0xF0,0x88,0x88,0xF0,0xA0,0x90,0x88,0x00, // R + 0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00, // S + 0xF8,0xA8,0x20,0x20,0x20,0x20,0x20,0x00, // T + 0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00, // U + 0x88,0x88,0x88,0x88,0x88,0x50,0x20,0x00, // V + 0x88,0x88,0x88,0xA8,0xA8,0xA8,0x50,0x00, // W + 0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x00, // X + 0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x00, // Y + 0xF8,0x08,0x10,0x70,0x40,0x80,0xF8,0x00, // Z + 0x78,0x40,0x40,0x40,0x40,0x40,0x78,0x00, // [ + 0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00, // \ (back slash) + 0x78,0x08,0x08,0x08,0x08,0x08,0x78,0x00, // ] + 0x20,0x50,0x88,0x00,0x00,0x00,0x00,0x00, // ^ + 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00, // _ + 0x60,0x60,0x20,0x10,0x00,0x00,0x00,0x00, // ` 0x60 + 0x00,0x00,0x60,0x10,0x70,0x90,0x78,0x00, // a + 0x80,0x80,0xB0,0xC8,0x88,0xC8,0xB0,0x00, // b + 0x00,0x00,0x70,0x88,0x80,0x88,0x70,0x00, // c + 0x08,0x08,0x68,0x98,0x88,0x98,0x68,0x00, // d + 0x00,0x00,0x70,0x88,0xF8,0x80,0x70,0x00, // e + 0x10,0x28,0x20,0x70,0x20,0x20,0x20,0x00, // f + 0x00,0x00,0x70,0x98,0x98,0x68,0x08,0x70, // g + 0x80,0x80,0xB0,0xC8,0x88,0x88,0x88,0x00, // h + 0x20,0x00,0x60,0x20,0x20,0x20,0x70,0x00, // i + 0x10,0x00,0x10,0x10,0x10,0x90,0x60,0x00, // j + 0x80,0x80,0x90,0xA0,0xC0,0xA0,0x90,0x00, // k + 0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00, // l + 0x00,0x00,0xD0,0xA8,0xA8,0xA8,0xA8,0x00, // m + 0x00,0x00,0xB0,0xC8,0x88,0x88,0x88,0x00, // n + 0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00, // o + 0x00,0x00,0xB0,0xC8,0xC8,0xB0,0x80,0x80, // p 0x70 + 0x00,0x00,0x68,0x98,0x98,0x68,0x08,0x08, // q + 0x00,0x00,0xB0,0xC8,0x80,0x80,0x80,0x00, // r + 0x00,0x00,0x78,0x80,0x70,0x08,0xF0,0x00, // s + 0x20,0x20,0xF8,0x20,0x20,0x28,0x10,0x00, // t + 0x00,0x00,0x88,0x88,0x88,0x98,0x68,0x00, // u + 0x00,0x00,0x88,0x88,0x88,0x50,0x20,0x00, // v + 0x00,0x00,0x88,0x88,0xA8,0xA8,0x50,0x00, // w + 0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x00, // x + 0x00,0x00,0x88,0x88,0x78,0x08,0x88,0x70, // y + 0x00,0x00,0xF8,0x10,0x20,0x40,0xF8,0x00, // z + 0x10,0x20,0x20,0x40,0x20,0x20,0x10,0x00, // { + 0x20,0x20,0x20,0x00,0x20,0x20,0x20,0x00, // | + 0x40,0x20,0x20,0x10,0x20,0x20,0x40,0x00, // } + 0x40,0xA8,0x10,0x00,0x00,0x00,0x00,0x00, // ~ + 0x70,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00 +}; // DEL + +const unsigned char FONT8x8[97][8] = { + 0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, // columns, rows, num_bytes_per_char + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // space 0x20 + 0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00, // ! + 0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00, // " + 0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00, // # + 0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00, // $ + 0x00,0x63,0x66,0x0C,0x18,0x33,0x63,0x00, // % + 0x1C,0x36,0x1C,0x3B,0x6E,0x66,0x3B,0x00, // & + 0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00, // ' + 0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00, // ( + 0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00, // ) + 0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00, // * + 0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00, // + + 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30, // , + 0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00, // - + 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00, // . + 0x03,0x06,0x0C,0x18,0x30,0x60,0x40,0x00, // / (forward slash) + 0x3E,0x63,0x63,0x6B,0x63,0x63,0x3E,0x00, // 0 0x30 + 0x18,0x38,0x58,0x18,0x18,0x18,0x7E,0x00, // 1 + 0x3C,0x66,0x06,0x1C,0x30,0x66,0x7E,0x00, // 2 + 0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00, // 3 + 0x0E,0x1E,0x36,0x66,0x7F,0x06,0x0F,0x00, // 4 + 0x7E,0x60,0x7C,0x06,0x06,0x66,0x3C,0x00, // 5 + 0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00, // 6 + 0x7E,0x66,0x06,0x0C,0x18,0x18,0x18,0x00, // 7 + 0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00, // 8 + 0x3C,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00, // 9 + 0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00, // : + 0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30, // ; + 0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00, // < + 0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00, // = + 0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00, // > + 0x3C,0x66,0x06,0x0C,0x18,0x00,0x18,0x00, // ? + 0x3E,0x63,0x6F,0x69,0x6F,0x60,0x3E,0x00, // @ 0x40 + 0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x00, // A + 0x7E,0x33,0x33,0x3E,0x33,0x33,0x7E,0x00, // B + 0x1E,0x33,0x60,0x60,0x60,0x33,0x1E,0x00, // C + 0x7C,0x36,0x33,0x33,0x33,0x36,0x7C,0x00, // D + 0x7F,0x31,0x34,0x3C,0x34,0x31,0x7F,0x00, // E + 0x7F,0x31,0x34,0x3C,0x34,0x30,0x78,0x00, // F + 0x1E,0x33,0x60,0x60,0x67,0x33,0x1F,0x00, // G + 0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00, // H + 0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00, // I + 0x0F,0x06,0x06,0x06,0x66,0x66,0x3C,0x00, // J + 0x73,0x33,0x36,0x3C,0x36,0x33,0x73,0x00, // K + 0x78,0x30,0x30,0x30,0x31,0x33,0x7F,0x00, // L + 0x63,0x77,0x7F,0x7F,0x6B,0x63,0x63,0x00, // M + 0x63,0x73,0x7B,0x6F,0x67,0x63,0x63,0x00, // N + 0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00, // O + 0x7E,0x33,0x33,0x3E,0x30,0x30,0x78,0x00, // P 0x50 + 0x3C,0x66,0x66,0x66,0x6E,0x3C,0x0E,0x00, // Q + 0x7E,0x33,0x33,0x3E,0x36,0x33,0x73,0x00, // R + 0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00, // S + 0x7E,0x5A,0x18,0x18,0x18,0x18,0x3C,0x00, // T + 0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x00, // U + 0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00, // V + 0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00, // W + 0x63,0x63,0x36,0x1C,0x1C,0x36,0x63,0x00, // X + 0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00, // Y + 0x7F,0x63,0x46,0x0C,0x19,0x33,0x7F,0x00, // Z + 0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00, // [ + 0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00, // \ (back slash) + 0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00, // ] + 0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00, // ^ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, // _ + 0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00, // ` 0x60 + 0x00,0x00,0x3C,0x06,0x3E,0x66,0x3B,0x00, // a + 0x70,0x30,0x3E,0x33,0x33,0x33,0x6E,0x00, // b + 0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00, // c + 0x0E,0x06,0x3E,0x66,0x66,0x66,0x3B,0x00, // d + 0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, // e + 0x1C,0x36,0x30,0x78,0x30,0x30,0x78,0x00, // f + 0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x7C, // g + 0x70,0x30,0x36,0x3B,0x33,0x33,0x73,0x00, // h + 0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, // i + 0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C, // j + 0x70,0x30,0x33,0x36,0x3C,0x36,0x73,0x00, // k + 0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00, // l + 0x00,0x00,0x66,0x7F,0x7F,0x6B,0x63,0x00, // m + 0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00, // n + 0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00, // o + 0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x78, // p + 0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x0F, // q + 0x00,0x00,0x6E,0x3B,0x33,0x30,0x78,0x00, // r + 0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00, // s + 0x08,0x18,0x3E,0x18,0x18,0x1A,0x0C,0x00, // t + 0x00,0x00,0x66,0x66,0x66,0x66,0x3B,0x00, // u + 0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00, // v + 0x00,0x00,0x63,0x6B,0x7F,0x7F,0x36,0x00, // w + 0x00,0x00,0x63,0x36,0x1C,0x36,0x63,0x00, // x + 0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x7C, // y + 0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00, // z + 0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00, // { + 0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x0C,0x00, // | + 0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00, // } + 0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00, // ~ + 0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00 +}; // DEL + +const unsigned char FONT8x16[97][16] = { + 0x08,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // columns, rows, num_bytes_per_char + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // space 0x20 + 0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // ! + 0x00,0x63,0x63,0x63,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " + 0x00,0x00,0x00,0x36,0x36,0x7F,0x36,0x36,0x36,0x7F,0x36,0x36,0x00,0x00,0x00,0x00, // # + 0x0C,0x0C,0x3E,0x63,0x61,0x60,0x3E,0x03,0x03,0x43,0x63,0x3E,0x0C,0x0C,0x00,0x00, // $ + 0x00,0x00,0x00,0x00,0x00,0x61,0x63,0x06,0x0C,0x18,0x33,0x63,0x00,0x00,0x00,0x00, // % + 0x00,0x00,0x00,0x1C,0x36,0x36,0x1C,0x3B,0x6E,0x66,0x66,0x3B,0x00,0x00,0x00,0x00, // & + 0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' + 0x00,0x00,0x0C,0x18,0x18,0x30,0x30,0x30,0x30,0x18,0x18,0x0C,0x00,0x00,0x00,0x00, // ( + 0x00,0x00,0x18,0x0C,0x0C,0x06,0x06,0x06,0x06,0x0C,0x0C,0x18,0x00,0x00,0x00,0x00, // ) + 0x00,0x00,0x00,0x00,0x42,0x66,0x3C,0xFF,0x3C,0x66,0x42,0x00,0x00,0x00,0x00,0x00, // * + 0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00, // + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00, // , + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // . + 0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00, // / (forward slash) + 0x00,0x00,0x3E,0x63,0x63,0x63,0x6B,0x6B,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00, // 0 0x30 + 0x00,0x00,0x0C,0x1C,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3F,0x00,0x00,0x00,0x00, // 1 + 0x00,0x00,0x3E,0x63,0x03,0x06,0x0C,0x18,0x30,0x61,0x63,0x7F,0x00,0x00,0x00,0x00, // 2 + 0x00,0x00,0x3E,0x63,0x03,0x03,0x1E,0x03,0x03,0x03,0x63,0x3E,0x00,0x00,0x00,0x00, // 3 + 0x00,0x00,0x06,0x0E,0x1E,0x36,0x66,0x66,0x7F,0x06,0x06,0x0F,0x00,0x00,0x00,0x00, // 4 + 0x00,0x00,0x7F,0x60,0x60,0x60,0x7E,0x03,0x03,0x63,0x73,0x3E,0x00,0x00,0x00,0x00, // 5 + 0x00,0x00,0x1C,0x30,0x60,0x60,0x7E,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00, // 6 + 0x00,0x00,0x7F,0x63,0x03,0x06,0x06,0x0C,0x0C,0x18,0x18,0x18,0x00,0x00,0x00,0x00, // 7 + 0x00,0x00,0x3E,0x63,0x63,0x63,0x3E,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00, // 8 + 0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x3F,0x03,0x03,0x06,0x3C,0x00,0x00,0x00,0x00, // 9 + 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, // : + 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00, // ; + 0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00, // < + 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00, // = + 0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,0x00,0x00, // > + 0x00,0x00,0x3E,0x63,0x63,0x06,0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00, // ? + 0x00,0x00,0x3E,0x63,0x63,0x6F,0x6B,0x6B,0x6E,0x60,0x60,0x3E,0x00,0x00,0x00,0x00, // @ 0x40 + 0x00,0x00,0x08,0x1C,0x36,0x63,0x63,0x63,0x7F,0x63,0x63,0x63,0x00,0x00,0x00,0x00, // A + 0x00,0x00,0x7E,0x33,0x33,0x33,0x3E,0x33,0x33,0x33,0x33,0x7E,0x00,0x00,0x00,0x00, // B + 0x00,0x00,0x1E,0x33,0x61,0x60,0x60,0x60,0x60,0x61,0x33,0x1E,0x00,0x00,0x00,0x00, // C + 0x00,0x00,0x7C,0x36,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x7C,0x00,0x00,0x00,0x00, // D + 0x00,0x00,0x7F,0x33,0x31,0x34,0x3C,0x34,0x30,0x31,0x33,0x7F,0x00,0x00,0x00,0x00, // E + 0x00,0x00,0x7F,0x33,0x31,0x34,0x3C,0x34,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00, // F + 0x00,0x00,0x1E,0x33,0x61,0x60,0x60,0x6F,0x63,0x63,0x37,0x1D,0x00,0x00,0x00,0x00, // G + 0x00,0x00,0x63,0x63,0x63,0x63,0x7F,0x63,0x63,0x63,0x63,0x63,0x00,0x00,0x00,0x00, // H + 0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, // I + 0x00,0x00,0x0F,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00,0x00,0x00,0x00, // J + 0x00,0x00,0x73,0x33,0x36,0x36,0x3C,0x36,0x36,0x33,0x33,0x73,0x00,0x00,0x00,0x00, // K + 0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x33,0x7F,0x00,0x00,0x00,0x00, // L + 0x00,0x00,0x63,0x77,0x7F,0x6B,0x63,0x63,0x63,0x63,0x63,0x63,0x00,0x00,0x00,0x00, // M + 0x00,0x00,0x63,0x63,0x73,0x7B,0x7F,0x6F,0x67,0x63,0x63,0x63,0x00,0x00,0x00,0x00, // N + 0x00,0x00,0x1C,0x36,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1C,0x00,0x00,0x00,0x00, // O + 0x00,0x00,0x7E,0x33,0x33,0x33,0x3E,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00, // P 0x50 + 0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x63,0x63,0x6B,0x6F,0x3E,0x06,0x07,0x00,0x00, // Q + 0x00,0x00,0x7E,0x33,0x33,0x33,0x3E,0x36,0x36,0x33,0x33,0x73,0x00,0x00,0x00,0x00, // R + 0x00,0x00,0x3E,0x63,0x63,0x30,0x1C,0x06,0x03,0x63,0x63,0x3E,0x00,0x00,0x00,0x00, // S + 0x00,0x00,0xFF,0xDB,0x99,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, // T + 0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00, // U + 0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1C,0x08,0x00,0x00,0x00,0x00, // V + 0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x6B,0x6B,0x7F,0x36,0x36,0x00,0x00,0x00,0x00, // W + 0x00,0x00,0xC3,0xC3,0x66,0x3C,0x18,0x18,0x3C,0x66,0xC3,0xC3,0x00,0x00,0x00,0x00, // X + 0x00,0x00,0xC3,0xC3,0xC3,0x66,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, // Y + 0x00,0x00,0x7F,0x63,0x43,0x06,0x0C,0x18,0x30,0x61,0x63,0x7F,0x00,0x00,0x00,0x00, // Z + 0x00,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,0x00,0x00,0x00, // [ + 0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x07,0x03,0x01,0x00,0x00,0x00,0x00, // \ (back slash) + 0x00,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,0x00,0x00,0x00, // ] + 0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, // _ + 0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ` 0x60 + 0x00,0x00,0x00,0x00,0x00,0x3C,0x46,0x06,0x3E,0x66,0x66,0x3B,0x00,0x00,0x00,0x00, // a + 0x00,0x00,0x70,0x30,0x30,0x3C,0x36,0x33,0x33,0x33,0x33,0x6E,0x00,0x00,0x00,0x00, // b + 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x60,0x60,0x60,0x63,0x3E,0x00,0x00,0x00,0x00, // c + 0x00,0x00,0x0E,0x06,0x06,0x1E,0x36,0x66,0x66,0x66,0x66,0x3B,0x00,0x00,0x00,0x00, // d + 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x63,0x7E,0x60,0x63,0x3E,0x00,0x00,0x00,0x00, // e + 0x00,0x00,0x1C,0x36,0x32,0x30,0x7C,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00, // f + 0x00,0x00,0x00,0x00,0x00,0x3B,0x66,0x66,0x66,0x66,0x3E,0x06,0x66,0x3C,0x00,0x00, // g + 0x00,0x00,0x70,0x30,0x30,0x36,0x3B,0x33,0x33,0x33,0x33,0x73,0x00,0x00,0x00,0x00, // h + 0x00,0x00,0x0C,0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00, // i + 0x00,0x00,0x06,0x06,0x00,0x0E,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00,0x00, // j + 0x00,0x00,0x70,0x30,0x30,0x33,0x33,0x36,0x3C,0x36,0x33,0x73,0x00,0x00,0x00,0x00, // k + 0x00,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00, // l + 0x00,0x00,0x00,0x00,0x00,0x6E,0x7F,0x6B,0x6B,0x6B,0x6B,0x6B,0x00,0x00,0x00,0x00, // m + 0x00,0x00,0x00,0x00,0x00,0x6E,0x33,0x33,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00, // n + 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00,0x00,0x00,0x00, // o + 0x00,0x00,0x00,0x00,0x00,0x6E,0x33,0x33,0x33,0x33,0x3E,0x30,0x30,0x78,0x00,0x00, // p 0x70 + 0x00,0x00,0x00,0x00,0x00,0x3B,0x66,0x66,0x66,0x66,0x3E,0x06,0x06,0x0F,0x00,0x00, // q + 0x00,0x00,0x00,0x00,0x00,0x6E,0x3B,0x33,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00, // r + 0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x38,0x0E,0x03,0x63,0x3E,0x00,0x00,0x00,0x00, // s + 0x00,0x00,0x08,0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x1B,0x0E,0x00,0x00,0x00,0x00, // t + 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3B,0x00,0x00,0x00,0x00, // u + 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x36,0x36,0x1C,0x1C,0x08,0x00,0x00,0x00,0x00, // v + 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,0x6B,0x6B,0x7F,0x36,0x00,0x00,0x00,0x00, // w + 0x00,0x00,0x00,0x00,0x00,0x63,0x36,0x1C,0x1C,0x1C,0x36,0x63,0x00,0x00,0x00,0x00, // x + 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x3F,0x03,0x06,0x3C,0x00,0x00, // y + 0x00,0x00,0x00,0x00,0x00,0x7F,0x66,0x0C,0x18,0x30,0x63,0x7F,0x00,0x00,0x00,0x00, // z + 0x00,0x00,0x0E,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0E,0x00,0x00,0x00,0x00, // { + 0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00, // | + 0x00,0x00,0x70,0x18,0x18,0x18,0x0E,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00, // } + 0x00,0x00,0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~ + 0x00,0x70,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // DELL +}; + +void MobileLCD::command(int value) { + _spi.write(value & 0xFF); +} + +void MobileLCD::data(int value) { + _spi.write(value | 0x100); +} + +void MobileLCD::_select() { + _cs = 0; +} + +void MobileLCD::_deselect() { + _cs = 1; +} + +int MobileLCD::width() { + return _width; +} + +int MobileLCD::height() { + return _height; +} + +void MobileLCD::foreground(int v) { + _foreground = v; +} + +void MobileLCD::background(int v) { + _background = v; +} + + +/*************************************************************************/ + +MobileLCD::MobileLCD(PinName mosi, PinName miso, PinName clk, PinName cs, PinName rst) + : _spi(mosi, miso, clk) + , _rst(rst) + , _cs(cs) { + + _width = 130; + _height = 130; + foreground(0xFFFFFF); + background(0x000000); + reset(); +} + +void MobileLCD::reset() { + + _cs = 1; + _rst = 0; + _spi.format(9); + _spi.frequency(5000000); + + wait_ms(1); + + _rst = 1; + + wait_ms(1); + + _select(); + + command(DISCTL); // display control + data(0x0); + data(31); + data(0x0); + + command(COMSCN); // scan + data(0x1); + + command(OSCON); // oscillator on + command(SLPOUT); // sleep out + command(PWRCTR); // power control + data(0x0F); + + command(DISINV); // invert display + + command(VOLCTR); // Voltage control + data(39); // contrast setting: 0..63 + data(3); // resistance ratio + + wait_ms(1); + + command(DATCTL); // data control + data(0x0); // scan dirs + data(0x0); // RGB + data(0x2); // grayscale + + command(DISON); // turn on the display + + _deselect(); + + cls(); +} + +void MobileLCD::cls() +{ + fill(0, 0, 130, 130, _background); +} + +void MobileLCD::_window(int x, int y, int width, int height) +{ + int x1, x2, y1, y2; + x1 = x + 0; + y1 = y + 2; + x2 = x1 + width - 1; + y2 = y1 + height - 1; + + command(CASET); // column + data(x1); + data(x2); + + command(PASET); // page + data(y1); + data(y2); + + command(RAMWR); // start write to ram +} + +void MobileLCD::fill(int x, int y, int width, int height, int colour) +{ + int i = 0; + + _select(); + _window(x, y, width, height); + + int r4 = (colour >> (16 + 4)) & 0xF; + int g4 = (colour >> (8 + 4)) & 0xF; + int b4 = (colour >> (0 + 4)) & 0xF; + + int d1 = (r4 << 4) | g4; + int d2 = (b4 << 4) | r4; + int d3 = (g4 << 4) | b4; + + for(i=0; i<(width*height+1)/2; i++) + { + data(d1); + data(d2); + data(d3); + } + + _deselect(); +} + +void MobileLCD::pixel(int x, int y, int colour) { + fill(x, y, 1, 1, colour); +} + +void MobileLCD::setpixel(int x, int y, int colour) { + + _select(); + + int r4 = (colour >> (16 + 4)) & 0xF; + int g4 = (colour >> (8 + 4)) & 0xF; + int b4 = (colour >> (0 + 4)) & 0xF; + + int d1 = (r4 << 4) | g4; + int d2 = (b4 << 4) | r4; + int d3 = (g4 << 4) | b4; + + command(CASET); // column + data(x); + data(x); + + command(PASET); // page + data(y); + data(y); + + command(RAMWR); // start write to ram + + data(d1); + data(d2); + data(d3); + + _deselect(); +} + +void MobileLCD::setline(int x0, int y0, int x1, int y1, int color) { + int dy = y1 - y0; + int dx = x1 - x0; + int stepx, stepy; + + if(dy < 0) + { + dy = -dy; + stepy = -1; + } + else + stepy = 1; + + if(dx < 0) + { + dx = -dx; + stepx = -1; + } + else + stepx = 1; + + dy <<= 1; // dy is now 2*dy + dx <<= 1; // dx is now 2*dx + + setpixel(x0, y0, color); + if (dx > dy) + { + int fraction = dy - (dx >> 1); // same as 2*dy - dx + while (x0 != x1) + { + if (fraction >= 0) + { + y0 += stepy; + fraction -= dx; // same as fraction -= 2*dx + } + x0 += stepx; + fraction += dy; // same as fraction -= 2*dy + setpixel(x0, y0, color); + } + } + else + { + int fraction = dx - (dy >> 1); + while (y0 != y1) + { + if (fraction >= 0) + { + x0 += stepx; + fraction -= dy; + } + y0 += stepy; + fraction += dx; + setpixel(x0, y0, color); + } + } +} + +void MobileLCD::setrect(int x0, int y0, int x1, int y1, unsigned char tmpNum, int color) { + + int xmin, xmax, ymin, ymax; + + // check if the rectangle is to be filled + if (tmpNum == FILL) + { + // best way to create a filled rectangle is to define a drawing box + // and loop two pixels at a time + // calculate the min and max for x and y directions + xmin = (x0 <= x1) ? x0 : x1; + xmax = (x0 > x1) ? x0 : x1; + ymin = (y0 <= y1) ? y0 : y1; + ymax = (y0 > y1) ? y0 : y1; + + fill(xmin, ymin, (xmax - xmin), (ymax - ymin), color); + } + else + { + // best way to draw un unfilled rectangle is to draw four lines + setline(x0, y0, x1, y0, color); + setline(x0, y1, x1, y1, color); + setline(x0, y0, x0, y1, color); + setline(x1, y0, x1, y1, color); + } +} + +void MobileLCD::setcircle(int x0, int y0, int radius, int color) { + + int f = 1 - radius; + int ddF_x = 0; + int ddF_y = -2 * radius; + int x = 0; + int y = radius; + + setpixel(x0, y0 + radius, color); + setpixel(x0, y0 - radius, color); + setpixel(x0 + radius, y0, color); + setpixel(x0 - radius, y0, color); + + while(x < y) + { + if(f >= 0) + { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x + 1; + + setpixel(x0 + x, y0 + y, color); + setpixel(x0 - x, y0 + y, color); + setpixel(x0 + x, y0 - y, color); + setpixel(x0 - x, y0 - y, color); + setpixel(x0 + y, y0 + x, color); + setpixel(x0 - y, y0 + x, color); + setpixel(x0 + y, y0 - x, color); + setpixel(x0 - y, y0 - x, color); + } +} + +void MobileLCD::bitblit(int x, int y, int width, int height, const char* bitstream, int fColor, int bColor) { + _select(); + _window(x, y, width, height); + for(int i=0; i<height*width/2; i++) { + int byte1 = (i*2) / 8; + int bit1 = (i*2) % 8; + int colour1 = ((bitstream[byte1] << bit1) & 0x80) ? fColor : bColor; + int byte2 = (i*2+1) / 8; + int bit2 = (i*2+1) % 8; + int colour2 = ((bitstream[byte2] << bit2) & 0x80) ? fColor : bColor; + + int r41 = (colour1 >> (16 + 4)) & 0xF; + int g41 = (colour1 >> (8 + 4)) & 0xF; + int b41 = (colour1 >> (0 + 4)) & 0xF; + + int r42 = (colour2 >> (16 + 4)) & 0xF; + int g42 = (colour2 >> (8 + 4)) & 0xF; + int b42 = (colour2 >> (0 + 4)) & 0xF; + int d1 = (r41 << 4) | g41; + int d2 = (b41 << 4) | r42; + int d3 = (g42 << 4) | b42; + data(d1); + data(d2); + data(d3); + } + _deselect(); +} + +void MobileLCD::putchar(int x, int y, int size, int value, int fColor, int bColor) { + + switch(size) + { + case SMALL : bitblit(x, y, 8, 8, (char*)&(FONT6x8[value - 0x1F][0]), fColor, bColor); + break; + case MEDIUM : bitblit(x, y, 8, 8, (char*)&(FONT8x8[value - 0x1F][0]), fColor, bColor); + break; + case LARGE : bitblit(x, y, 8, 16, (char*)&(FONT8x16[value - 0x1F][0]), fColor, bColor); + break; + } + +} \ No newline at end of file
diff -r 000000000000 -r 9b63dfb366dd MobileLCD.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MobileLCD.h Fri Jul 02 15:36:51 2010 +0000 @@ -0,0 +1,136 @@ + +#ifndef MBED_MOBILELCD_H +#define MBED_MOBILELCD_H + +#include "mbed.h" + +class MobileLCD { + +public: + + MobileLCD(PinName mosi, PinName miso, PinName clk, PinName cs, PinName rst); + + void cls(); + int width(); + int height(); + void foreground(int v); + void background(int v); + void fill(int x, int y, int width, int height, int colour); + void reset(); + void pixel(int x, int y, int colour); + void setpixel(int x, int y, int colour); + void setline(int x0, int y0, int x1, int y1, int color); + void setrect(int x0, int y0, int x1, int y1, unsigned char fill, int color); + void setcircle(int x0, int y0, int radius, int color); + void putchar(int x, int y, int size, int value, int fColor, int bColor); + void bitblit(int x, int y, int width, int height, const char* bitstream, int fColor, int bColor); + +protected: + + SPI _spi; + DigitalOut _rst; + DigitalOut _cs; + + void _select(); + void _deselect(); + void _window(int x, int y, int width, int height); + void command(int value); + void data(int value); + + int _foreground, _background, _width, _height; +}; + +#define DISON 0xAF // Display on +#define DISOFF 0xAE // Display off +#define DISNOR 0xA6 // Normal display +#define DISINV 0xA7 // Inverse display +#define COMSCN 0xBB // Common scan direction +#define DISCTL 0xCA // Display control +#define SLPIN 0x95 // Sleep in +#define SLPOUT 0x94 // Sleep out +#define PASET 0x75 // Page address set +#define CASET 0x15 // Column address set +#define DATCTL 0xBC // Data scan direction, etc. +#define RGBSET8 0xCE // 256-color position set +#define RAMWR 0x5C // Writing to memory +#define RAMRD 0x5D // Reading from memory +#define PTLIN 0xA8 // Partial display in +#define PTLOUT 0xA9 // Partial display out +#define RMWIN 0xE0 // Read and modify write +#define RMWOUT 0xEE // End +#define ASCSET 0xAA // Area scroll set +#define SCSTART 0xAB // Scroll start set +#define OSCON 0xD1 // Internal oscillation on +#define OSCOFF 0xD2 // Internal oscillation off +#define PWRCTR 0x20 // Power control +#define VOLCTR 0x81 // Electronic volume control +#define VOLUP 0xD6 // Increment electronic control by 1 +#define VOLDOWN 0xD7 // Decrement electronic control by 1 +#define TMPGRD 0x82 // Temperature gradient set +#define EPCTIN 0xCD // Control EEPROM +#define EPCOUT 0xCC // Cancel EEPROM control +#define EPMWR 0xFC // Write into EEPROM +#define EPMRD 0xFD // Read from EEPROM +#define EPSRRD1 0x7C // Read register 1 +#define EPSRRD2 0x7D // Read register 2 +#define NOP 0x25 // NOP instruction + +// backlight control +#define BKLGHT_LCD_ON 1 +#define BKLGHT_LCD_OFF 2 + +// Booleans +#define NOFILL 0 +#define FILL 1 +#define SMALL 0 +#define MEDIUM 1 +#define LARGE 2 + +// mask definitions +#define BIT0 0x00000001 +#define BIT1 0x00000002 +#define BIT2 0x00000004 +#define BIT3 0x00000008 +#define BIT4 0x00000010 +#define BIT5 0x00000020 +#define BIT6 0x00000040 +#define BIT7 0x00000080 +#define BIT8 0x00000100 +#define BIT9 0x00000200 +#define BIT10 0x00000400 +#define BIT11 0x00000800 +#define BIT12 0x00001000 +#define BIT13 0x00002000 +#define BIT14 0x00004000 +#define BIT15 0x00008000 +#define BIT16 0x00010000 +#define BIT17 0x00020000 +#define BIT18 0x00040000 +#define BIT19 0x00080000 +#define BIT20 0x00100000 +#define BIT21 0x00200000 +#define BIT22 0x00400000 +#define BIT23 0x00800000 +#define BIT24 0x01000000 +#define BIT25 0x02000000 +#define BIT26 0x04000000 +#define BIT27 0x08000000 +#define BIT28 0x10000000 +#define BIT29 0x20000000 +#define BIT30 0x40000000 +#define BIT31 0x80000000 + +// 12-bit color definitions +#define WHITE 0xFFFFFF +#define BLACK 0x000000 +#define RED 0xFF0000 +#define GREEN 0x00FF00 +#define BLUE 0x0000FF +#define CYAN 0x00FFFF +#define MAGENTA 0xFF00FF +#define YELLOW 0xFFFF00 +#define BROWN 0xBB2222 +#define ORANGE 0xFFAA00 +#define PINK 0xFF66AA + +#endif // Lcd_h
diff -r 000000000000 -r 9b63dfb366dd Terminal.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Terminal.cpp Fri Jul 02 15:36:51 2010 +0000 @@ -0,0 +1,40 @@ +/* mbed ANSI/VT100 Terminal Library + * Copyright (c) 2007-2009 sford + * Released under the MIT License: http://mbed.org/license/mit + */ + +#include "Terminal.h" + +#include "mbed.h" + +Terminal::Terminal(PinName tx, PinName rx) : Serial(tx, rx) {} + +void Terminal::cls() { + this->printf("\033[2J"); +} + +void Terminal::locate(int column, int row) { + // Cursor Home <ESC>[{ROW};{COLUMN}H + this->printf("\033[%d;%dH%c", row + 1, column + 1); +} + +static int rgb888tobgr111(int colour) { + int r = (colour >> 23) & 1; + int g = (colour >> 15) & 1; + int b = (colour >> 7) & 1; + return (b << 2) | (g << 1) | (r << 0); +} + +void Terminal::foreground(int colour) { + // Set Attribute Mode <ESC>[{n}m + // Foreground Colours : 30 + bgr + int c = 30 + rgb888tobgr111(colour); + this->printf("\033[%dm", c); +} + +void Terminal::background(int colour) { + // Set Attribute Mode <ESC>[{n}m + // Background Colours : 40 + bgr + int c = 40 + rgb888tobgr111(colour); + this->printf("\033[%dm", c); +} \ No newline at end of file
diff -r 000000000000 -r 9b63dfb366dd Terminal.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Terminal.h Fri Jul 02 15:36:51 2010 +0000 @@ -0,0 +1,27 @@ +/* mbed Terminal TextDisplay Library + * Copyright (c) 2007-2009 sford + * Released under the MIT License: http://mbed.org/license/mit + * + * Implementation of ANSI/VT100 Terminal escape codes + * for use with e.g. Teraterm, Hyperterminal + */ + +#include "mbed.h" + +#ifndef MBED_TERMINAL_H +#define MBED_TERMINAL_H + +class Terminal : public Serial { +public: + + Terminal(PinName tx, PinName rx); + + // printf(), put(), baud() etc - inherited from Serial + + void cls(); + void locate(int column, int row); + void foreground(int colour); + void background(int colour); +}; + +#endif
diff -r 000000000000 -r 9b63dfb366dd main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Jul 02 15:36:51 2010 +0000 @@ -0,0 +1,17 @@ +#include "mbed.h" +#include "MobileLCD.h" + +MobileLCD lcd(p5, p6, p7, p8, p9); + +int main() { + + // clear the screen + lcd.cls(); + lcd.setcircle(50, 50, 25, YELLOW); + lcd.putchar(50, 50, SMALL, 65, 0x000000, 0xFFFFFF); + lcd.putchar(60, 60, MEDIUM, 65, 0xFFFFFF, 0x000000); + lcd.putchar(70, 70, LARGE, 'A', 0xFF0000, 0x0000FF); + lcd.putchar(80, 80, LARGE, '0', 0xFFFFFF, 0x111111); + +// lcd.putchar('E', 50, 50, SMALL, BLUE, YELLOW); +} \ No newline at end of file
diff -r 000000000000 -r 9b63dfb366dd mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Jul 02 15:36:51 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0