lcd clock

Dependencies:   NTPClient_NetServices mbed 4DGL-uLCD-SE EthernetNetIf

Files at this revision

API Documentation at this revision

Comitter:
emilywilson
Date:
Thu Feb 06 21:29:35 2020 +0000
Parent:
0:da7f4b6d2b7c
Commit message:
use lcd

Changed in this revision

4DGL-uLCD-SE.lib Show annotated file Show diff for this revision Revisions of this file
Internet_LCD_Clock.cpp Show annotated file Show diff for this revision Revisions of this file
NTPClient.lib Show diff for this revision Revisions of this file
NTPClient_NetServices.lib Show annotated file Show diff for this revision Revisions of this file
NokiaLCD/NokiaLCD.cpp Show diff for this revision Revisions of this file
NokiaLCD/NokiaLCD.h Show diff for this revision Revisions of this file
diff -r da7f4b6d2b7c -r 9da7a9089f12 4DGL-uLCD-SE.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4DGL-uLCD-SE.lib	Thu Feb 06 21:29:35 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/4180_1/code/4DGL-uLCD-SE/#2cb1845d7681
diff -r da7f4b6d2b7c -r 9da7a9089f12 Internet_LCD_Clock.cpp
--- a/Internet_LCD_Clock.cpp	Fri May 25 00:41:26 2012 +0000
+++ b/Internet_LCD_Clock.cpp	Thu Feb 06 21:29:35 2020 +0000
@@ -1,37 +1,31 @@
 #include "mbed.h"
 #include "EthernetNetIf.h"
 #include "NTPClient.h"
-#include "NokiaLCD.h"
+#include "uLCD_4DGL.h"
 // Internet of Things clock example: LCD time is set via internet NTP time server
 EthernetNetIf eth;
 NTPClient ntp;
-NokiaLCD lcd(p5, p7, p8, p9, NokiaLCD::LCD6610); // mosi, sclk, cs, rst, type
+uLCD_4DGL lcd(p28,p27,p30); // mosi, sclk, cs, rst, type
 
 int main() {
 //system time structure
     time_t ctTime;
     char *time_str;
     //clear LCD
-    lcd.cls();
-    lcd.locate(0,2);
     // lcd.printf prints to LCD display;
     lcd.printf("Get IP addr...");
     EthernetErr ethErr = eth.setup();
     //Get an Internet IP address using DHCP
     if (ethErr) {
         //error or timeout getting an IP address
-        lcd.cls();
-        lcd.locate(0,2);
         lcd.printf("Net Error %d",ethErr);
         return -1;
     }
-    lcd.locate(0,3);
     lcd.printf("Reading Time...");
     //specify time server URL
-    Host server(IpAddr(), 123, "0.uk.pool.ntp.org");
+    Host server(IpAddr(), 123, "0.north-america.pool.ntp.org");
     //Read time from server
     ntp.setTime(server);
-    lcd.locate(0,4);
     lcd.printf("Time set");
     //Delay for human time to read LCD display
     wait(1);
@@ -39,9 +33,7 @@
         // loop and periodically update the LCD's time display
         lcd.cls();
         ctTime = time(NULL);
-        lcd.locate(0,1);
         lcd.printf("UTC:");
-        lcd.locate(0,3);
         time_str = ctime(&ctTime);
         time_str[strlen(time_str)-1] = 0;
         lcd.printf("%s", time_str);
diff -r da7f4b6d2b7c -r 9da7a9089f12 NTPClient.lib
--- a/NTPClient.lib	Fri May 25 00:41:26 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/donatien/code/NTPClient/#7c3f1199256a
diff -r da7f4b6d2b7c -r 9da7a9089f12 NTPClient_NetServices.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NTPClient_NetServices.lib	Thu Feb 06 21:29:35 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/donatien/code/NTPClient_NetServices/#7c3f1199256a
diff -r da7f4b6d2b7c -r 9da7a9089f12 NokiaLCD/NokiaLCD.cpp
--- a/NokiaLCD/NokiaLCD.cpp	Fri May 25 00:41:26 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +0,0 @@
-/* mbed Nokia LCD Library
- * Copyright (c) 2007-2010, sford
- */
-
-#include "NokiaLCD.h"
-
-#include "mbed.h"
-
-#define NOKIALCD_ROWS 16
-#define NOKIALCD_COLS 16
-#define NOKIALCD_WIDTH 130
-#define NOKIALCD_HEIGHT 132
-#define NOKIALCD_FREQUENCY 5000000
-
-NokiaLCD::NokiaLCD(PinName mosi, PinName sclk, PinName cs, PinName rst, LCDType type)
-        : _spi(mosi, NC, sclk)
-        , _rst(rst)
-        , _cs(cs) {
-
-    _type = type;
-
-    _row = 0;
-    _column = 0;
-    _foreground = 0x00FFFFFF;
-    _background = 0x00000000;
-
-    reset();
-}
-
-void NokiaLCD::reset() {
-
-    // setup the SPI interface and bring display out of reset
-    _cs = 1;
-    _rst = 0;
-    _spi.format(9);
-    _spi.frequency(NOKIALCD_FREQUENCY);
-    wait_ms(1);
-    _rst = 1;
-    wait_ms(1);
-
-    _cs = 0;
-
-    switch (_type) {
-        case LCD6100:
-            command(0xCA); // display control
-            data(0);
-            data(32);
-            data(0);
-            command(0xBB);
-            data(1);
-            command(0xD1); // oscillator on
-            command(0x94); // sleep out
-            command(0x20); // power control
-            data(0x0F);
-            command(0xA7); // invert display
-            command(0x81); // Voltage control
-            data(39);      // contrast setting: 0..63
-            data(3);       // resistance ratio
-            wait_ms(1);
-            command(0xBC);
-            data(0);
-            data(1);
-            data(4);
-            command(0xAF);  // turn on the display
-            break;
-
-        case LCD6610:
-            command(0xCA);    // display control
-            data(0);
-            data(32);
-            data(0);
-            command(0xBB);
-            data(1);
-            command(0xD1); // oscillator on
-            command(0x94); // sleep out
-            command(0x20); // power control
-            data(0x0F);
-            command(0xA7); // invert display
-            command(0x81); // Voltage control
-            data(39);      // contrast setting: 0..63
-            data(3);       // resistance ratio
-            wait_ms(1);
-            command(0xBC);
-            data(0);
-            data(0);
-            data(2);
-            command(0xAF);  // turn on the display
-            break;
-
-        case PCF8833:
-            command(0x11);  // sleep out
-            command(0x3A);  // column mode
-            data(0x05);
-            command(0x36);  // madctl
-            data(0x60);     // vertical RAM, flip x
-            command(0x25);  // setcon
-            data(0x30);// contrast 0x30
-            wait_ms(2);
-            command(0x29);//DISPON
-            command(0x03);//BSTRON
-            break;
-    }
-
-    _cs = 1;
-
-    cls();
-}
-
-void NokiaLCD::command(int value) {
-    _spi.write(value & 0xFF);
-}
-
-void NokiaLCD::data(int value) {
-    _spi.write(value | 0x100);
-}
-
-void NokiaLCD::_window(int x, int y, int width, int height) {
-    int x1 = x + 0;
-    int y1 = y + 0;
-    int x2 = x1 + width - 1;
-    int y2 = y1 + height - 1;
-
-    switch (_type) {
-        case LCD6100:
-        case LCD6610:
-            command(0x15); // column
-            data(x1);
-            data(x2);
-            command(0x75); // row
-            data(y1);
-            data(y2);
-            command(0x5C); // start write to ram
-            break;
-        case PCF8833:
-            command(0x2A);  // column
-            data(x1);
-            data(x2);
-            command(0x2B); // row
-            data(y1);
-            data(y2);
-            command(0x2C); // start write to ram
-            break;
-    }
-}
-
-void NokiaLCD::_putp(int colour) {
-    int gr = ((colour >> 20) & 0x0F)
-             | ((colour >> 8 ) & 0xF0);
-    int nb = ((colour >> 4 ) & 0x0F);
-    data(nb);
-    data(gr);
-}
-
-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
-
-void NokiaLCD::locate(int column, int row) {
-    _column = column;
-    _row = row;
-}
-
-void NokiaLCD::newline() {
-    _column = 0;
-    _row++;
-    if (_row >= _rows) {
-        _row = 0;
-    }
-}
-
-int NokiaLCD::_putc(int value) {
-    int x = _column * 8;  // FIXME: Char sizes
-    int y = _row * 8;
-    bitblit(x + 1, y + 1, 8, 8, (char*)&(FONT8x8[value - 0x1F][0]));
-
-    _column++;
-
-    if (_column >= NOKIALCD_COLS) {
-        _row++;
-        _column = 0;
-    }
-
-    if (_row >= NOKIALCD_ROWS) {
-        _row = 0;
-    }
-
-    return value;
-}
-
-void NokiaLCD::cls() {
-    fill(0, 0, NOKIALCD_WIDTH, NOKIALCD_HEIGHT, _background);
-    _row = 0;
-    _column = 0;
-}
-
-
-void NokiaLCD::window(int x, int y, int width, int height) {
-    _cs = 0;
-    _window(x, y, width, height);
-    _cs = 1;
-}
-
-void NokiaLCD::putp(int colour) {
-    _cs = 0;
-    _putp(colour);
-    _cs = 1;
-}
-
-void NokiaLCD::pixel(int x, int y, int colour) {
-    _cs = 0;
-    _window(x, y, 1, 1);
-    switch (_type) {
-        case LCD6100:
-        case PCF8833:
-
-            _putp(colour);
-
-            break;
-        case LCD6610:
-
-            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;
-            data(d1);
-            data(d2);
-            data(d3);
-
-            break;
-    }
-    _cs = 1;
-
-}
-
-void NokiaLCD::fill(int x, int y, int width, int height, int colour) {
-    _cs = 0;
-    _window(x, y, width, height);
-    switch (_type) {
-        case LCD6100:
-        case PCF8833:
-            for (int i=0; i<width*height; i++) {
-                _putp(colour);
-            }
-            break;
-        case LCD6610:
-            for (int i=0; i<width*height/2; i++) {
-                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;
-                data(d1);
-                data(d2);
-                data(d3);
-            }
-            break;
-    }
-    _window(0, 0, NOKIALCD_WIDTH, NOKIALCD_HEIGHT);
-    _cs = 1;
-}
-
-void NokiaLCD::blit(int x, int y, int width, int height, const int* colour) {
-    _cs = 0;
-    _window(x, y, width, height);
-
-    switch (_type) {
-        case LCD6100:
-        case PCF8833:
-            for (int i=0; i<width*height; i++) {
-                _putp(colour[i]);
-            }
-            break;
-        case LCD6610:
-            for (int i=0; i<width*height/2; i++) {
-                int r41 = (colour[i*2] >> (16 + 4)) & 0xF;
-                int g41 = (colour[i*2] >> (8 + 4)) & 0xF;
-                int b41 = (colour[i*2] >> (0 + 4)) & 0xF;
-
-                int r42 = (colour[i*2+1] >> (16 + 4)) & 0xF;
-                int g42 = (colour[i*2+1] >> (8 + 4)) & 0xF;
-                int b42 = (colour[i*2+1] >> (0 + 4)) & 0xF;
-                int d1 = (r41 << 4) | g41;
-                int d2 = (b41 << 4) | r42;
-                int d3 = (g42 << 4) | b42;
-                data(d1);
-                data(d2);
-                data(d3);
-            }
-            break;
-    }
-    _window(0, 0, NOKIALCD_WIDTH, NOKIALCD_HEIGHT);
-    _cs = 1;
-}
-
-void NokiaLCD::bitblit(int x, int y, int width, int height, const char* bitstream) {
-    _cs = 0;
-    _window(x, y, width, height);
-
-    switch (_type) {
-        case LCD6100:
-        case PCF8833:
-            for (int i=0; i<height*width; i++) {
-                int byte = i / 8;
-                int bit = i % 8;
-                int colour = ((bitstream[byte] << bit) & 0x80) ? _foreground : _background;
-                _putp(colour);
-            }
-            break;
-        case LCD6610:
-            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) ? _foreground : _background;
-                int byte2 = (i*2+1) / 8;
-                int bit2 = (i*2+1) % 8;
-                int colour2 = ((bitstream[byte2] << bit2) & 0x80) ? _foreground : _background;
-
-                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);
-            }
-            break;
-    }
-    _window(0, 0, _width, _height);
-    _cs = 1;
-}
-
-void NokiaLCD::foreground(int c) {
-    _foreground = c;
-}
-
-void NokiaLCD::background(int c) {
-    _background = c;
-}
-
-int NokiaLCD::width() {
-    return NOKIALCD_WIDTH;
-}
-
-int NokiaLCD::height() {
-    return NOKIALCD_HEIGHT;
-}
-
-int NokiaLCD::columns() {
-    return NOKIALCD_COLS;
-}
-
-int NokiaLCD::rows() {
-    return NOKIALCD_ROWS;
-}
diff -r da7f4b6d2b7c -r 9da7a9089f12 NokiaLCD/NokiaLCD.h
--- a/NokiaLCD/NokiaLCD.h	Fri May 25 00:41:26 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/* mbed NokiaLCD Library, for a 130x130 Nokia colour LCD
- * Copyright (c) 2007-2010, sford
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef MBED_NOKIALCD_H
-#define MBED_NOKIALCD_H
-
-#include "mbed.h"
-
-/** An interface for the 130x130 Nokia Mobile phone screens
- *
- * @code
- * #include "mbed.h"
- * #include "NokiaLCD.h"
- *
- * NokiaLCD lcd(p5, p7, p8, p9, NokiaLCD::6610); // mosi, sclk, cs, rst, type
- *
- * int main() {
- *     lcd.printf("Hello World!");
- * }
- * @endcode
- */
-class NokiaLCD : public Stream {
-
-public:
-    /** LCD panel format */
-    enum LCDType {
-        LCD6100     /**< Nokia 6100, as found on sparkfun board (default) */
-        , LCD6610   /**< Nokia 6610, as found on olimex board */
-        , PCF8833
-    };
-
-    /** Create and Nokia LCD interface, using a SPI and two DigitalOut interfaces
-     *
-     * @param mosi SPI data out
-     * @param sclk SPI clock
-     * @param cs Chip Select (DigitalOut)
-     * @param rst Reset (DigitalOut)
-     * @param type The LCDType to select driver chip variants
-     */
-    NokiaLCD(PinName mosi, PinName sclk, PinName cs, PinName rst, LCDType type = LCD6100);
-
-#if DOXYGEN_ONLY
-    /** Write a character to the LCD
-     *
-     * @param c The character to write to the display
-     */
-    int putc(int c);
-
-    /** Write a formated string to the LCD
-     *
-     * @param format A printf-style format string, followed by the
-     *               variables to use in formating the string.
-     */
-    int printf(const char* format, ...);
-#endif
-
-    /** Locate to a screen column and row
-     *
-     * @param column  The horizontal position from the left, indexed from 0
-     * @param row     The vertical position from the top, indexed from 0
-     */
-    void locate(int column, int row);
-
-    /** Clear the screen and locate to 0,0 */
-    void cls();
-
-    /** Set a pixel on te screen
-     * 
-     * @param x horizontal position from left
-     * @param y vertical position from top
-     * @param colour 24-bit colour in format 0x00RRGGBB
-     */
-    void pixel(int x, int y, int colour);
-    
-    /** Fill an area of the screen
-     * 
-     * @param x horizontal position from left
-     * @param y vertical position from top
-     * @param width width in pixels
-     * @param height height in pixels
-     * @param colour 24-bit colour in format 0x00RRGGBB
-     */    
-    void fill(int x, int y, int width, int height, int colour);
-
-    void blit(int x, int y, int width, int height, const int* colour);
-    void bitblit(int x, int y, int width, int height, const char* bitstream);
-
-    int width();
-    int height();
-    int columns();
-    int rows();
-
-    void reset();
-
-    /** Set the foreground colour
-     * 
-     * @param c 24-bit colour
-     */
-    void foreground(int c);
-
-    /** Set the background colour
-     * 
-     * @param c 24-bit colour
-     */
-    void background(int c);
-
-protected:
-    virtual void _window(int x, int y, int width, int height);
-    virtual void _putp(int colour);
-
-    void command(int value);
-    void data(int value);
-
-    void newline();
-    virtual int _putc(int c);
-    virtual int _getc() {
-        return 0;
-    }
-    void putp(int v);
-    void window(int x, int y, int width, int height);
-
-    SPI _spi;
-    DigitalOut _rst;
-    DigitalOut _cs;
-
-    LCDType _type;
-    int _row, _column, _rows, _columns, _foreground, _background, _width, _height;
-};
-
-#endif
-
-