Nokia LCD Controller for Philips PCF8833 controller marked "X3"

Dependencies:   mbed

NokiaLCD_X3/MobileLCD.h

Committer:
PhilG1300
Date:
2009-12-01
Revision:
0:d1a5b2ebfc8a

File content as of revision 0:d1a5b2ebfc8a:

/* mbed Library - Nokia LCD Labelled "X3"
* This is using the Philips PCF8833 controller
 * Copyright (c) 2009 P.R.Green
 */

#ifndef MBED_MOBILELCD_H
#define MBED_MOBILELCD_H

//Colours in RGB 5:6:5 16bit mode
#define BLACK 0x0000
#define RED 0xF800
#define GREEN 0x07E0 
#define BLUE 0x001F
#define WHITE 0xFFFF
#include "mbed.h"


namespace mbed {

/* Class: MobileLCD
 *  An abstraction of the 130x130 Nokia Mobile labelled "X3" phone screen
 *
 * Example:
 * >
 * > #include "mbed.h"
 * > #include "MobileLCD.h"
 * >
 * > MobileLCD lcd(p5,p6,p7,p8,p9);
 * > 
 * > int main() {
 * >     lcd.printf("Hello World!");
 * > }
 */

class MobileLCD : public Stream {

public:
    /* Constructor: MobileLCD
     *  Create and object for the Mobile LCD, using SPI and two DigitalOuts
     *
     * Variables:
     *  mosi - SPI data out
     *  miso - SPI data in, not used
     *  clk  - SPI clock
     *  cs   - Chip Select
     *  rst  - reset
     */

    MobileLCD(PinName mosi, PinName miso, PinName clk, PinName cs, PinName rst);

    virtual void reset();
    virtual void _select();
    virtual void _deselect();
    virtual void _window(int x, int y, int width, int height);
    virtual void _putp(int colour);
    //virtual void orientation();

     void command(int value);
     void data(int value);
     void foreground(int v);
     void background(int v);
     /* Function: locate
      *  Set the text cursor to location x,y
      *
      * Variables:
      *  x - An integer setting the column position
      *  y - An integer setting the row position
      */
     void locate(int column, int row);
     /* Function: newline
      *  Set the text cursor to the start of the next line
      */
     void newline();
     virtual int _putc(int c);
     virtual int _getc() { return 0; }
    SPI _spi;
    DigitalOut _rst;
    DigitalOut _cs;    
    void bitblit(int x, int y, int width, int height, const char* bitstream);
    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);
    /* Function: cls
     *  Clear the screen
     */
    void cls();
    int width();
    int height();
    int columns();
    int rows();
    void putp(int v);
    void window(int x, int y, int width, int height);
    void pixel(int x, int y, int colour);
    int _row, _column, _rows, _columns, _foreground, _background, _width, _height;
};

}

#endif