Phil Green
/
Nokia_Philips_Controller
Nokia LCD Controller for Philips PCF8833 controller marked "X3"
NokiaLCD_X3/MobileLCD.h@0:d1a5b2ebfc8a, 2009-12-01 (annotated)
- Committer:
- PhilG1300
- Date:
- Tue Dec 01 08:41:43 2009 +0000
- Revision:
- 0:d1a5b2ebfc8a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
PhilG1300 | 0:d1a5b2ebfc8a | 1 | /* mbed Library - Nokia LCD Labelled "X3" |
PhilG1300 | 0:d1a5b2ebfc8a | 2 | * This is using the Philips PCF8833 controller |
PhilG1300 | 0:d1a5b2ebfc8a | 3 | * Copyright (c) 2009 P.R.Green |
PhilG1300 | 0:d1a5b2ebfc8a | 4 | */ |
PhilG1300 | 0:d1a5b2ebfc8a | 5 | |
PhilG1300 | 0:d1a5b2ebfc8a | 6 | #ifndef MBED_MOBILELCD_H |
PhilG1300 | 0:d1a5b2ebfc8a | 7 | #define MBED_MOBILELCD_H |
PhilG1300 | 0:d1a5b2ebfc8a | 8 | |
PhilG1300 | 0:d1a5b2ebfc8a | 9 | //Colours in RGB 5:6:5 16bit mode |
PhilG1300 | 0:d1a5b2ebfc8a | 10 | #define BLACK 0x0000 |
PhilG1300 | 0:d1a5b2ebfc8a | 11 | #define RED 0xF800 |
PhilG1300 | 0:d1a5b2ebfc8a | 12 | #define GREEN 0x07E0 |
PhilG1300 | 0:d1a5b2ebfc8a | 13 | #define BLUE 0x001F |
PhilG1300 | 0:d1a5b2ebfc8a | 14 | #define WHITE 0xFFFF |
PhilG1300 | 0:d1a5b2ebfc8a | 15 | #include "mbed.h" |
PhilG1300 | 0:d1a5b2ebfc8a | 16 | |
PhilG1300 | 0:d1a5b2ebfc8a | 17 | |
PhilG1300 | 0:d1a5b2ebfc8a | 18 | namespace mbed { |
PhilG1300 | 0:d1a5b2ebfc8a | 19 | |
PhilG1300 | 0:d1a5b2ebfc8a | 20 | /* Class: MobileLCD |
PhilG1300 | 0:d1a5b2ebfc8a | 21 | * An abstraction of the 130x130 Nokia Mobile labelled "X3" phone screen |
PhilG1300 | 0:d1a5b2ebfc8a | 22 | * |
PhilG1300 | 0:d1a5b2ebfc8a | 23 | * Example: |
PhilG1300 | 0:d1a5b2ebfc8a | 24 | * > |
PhilG1300 | 0:d1a5b2ebfc8a | 25 | * > #include "mbed.h" |
PhilG1300 | 0:d1a5b2ebfc8a | 26 | * > #include "MobileLCD.h" |
PhilG1300 | 0:d1a5b2ebfc8a | 27 | * > |
PhilG1300 | 0:d1a5b2ebfc8a | 28 | * > MobileLCD lcd(p5,p6,p7,p8,p9); |
PhilG1300 | 0:d1a5b2ebfc8a | 29 | * > |
PhilG1300 | 0:d1a5b2ebfc8a | 30 | * > int main() { |
PhilG1300 | 0:d1a5b2ebfc8a | 31 | * > lcd.printf("Hello World!"); |
PhilG1300 | 0:d1a5b2ebfc8a | 32 | * > } |
PhilG1300 | 0:d1a5b2ebfc8a | 33 | */ |
PhilG1300 | 0:d1a5b2ebfc8a | 34 | |
PhilG1300 | 0:d1a5b2ebfc8a | 35 | class MobileLCD : public Stream { |
PhilG1300 | 0:d1a5b2ebfc8a | 36 | |
PhilG1300 | 0:d1a5b2ebfc8a | 37 | public: |
PhilG1300 | 0:d1a5b2ebfc8a | 38 | /* Constructor: MobileLCD |
PhilG1300 | 0:d1a5b2ebfc8a | 39 | * Create and object for the Mobile LCD, using SPI and two DigitalOuts |
PhilG1300 | 0:d1a5b2ebfc8a | 40 | * |
PhilG1300 | 0:d1a5b2ebfc8a | 41 | * Variables: |
PhilG1300 | 0:d1a5b2ebfc8a | 42 | * mosi - SPI data out |
PhilG1300 | 0:d1a5b2ebfc8a | 43 | * miso - SPI data in, not used |
PhilG1300 | 0:d1a5b2ebfc8a | 44 | * clk - SPI clock |
PhilG1300 | 0:d1a5b2ebfc8a | 45 | * cs - Chip Select |
PhilG1300 | 0:d1a5b2ebfc8a | 46 | * rst - reset |
PhilG1300 | 0:d1a5b2ebfc8a | 47 | */ |
PhilG1300 | 0:d1a5b2ebfc8a | 48 | |
PhilG1300 | 0:d1a5b2ebfc8a | 49 | MobileLCD(PinName mosi, PinName miso, PinName clk, PinName cs, PinName rst); |
PhilG1300 | 0:d1a5b2ebfc8a | 50 | |
PhilG1300 | 0:d1a5b2ebfc8a | 51 | virtual void reset(); |
PhilG1300 | 0:d1a5b2ebfc8a | 52 | virtual void _select(); |
PhilG1300 | 0:d1a5b2ebfc8a | 53 | virtual void _deselect(); |
PhilG1300 | 0:d1a5b2ebfc8a | 54 | virtual void _window(int x, int y, int width, int height); |
PhilG1300 | 0:d1a5b2ebfc8a | 55 | virtual void _putp(int colour); |
PhilG1300 | 0:d1a5b2ebfc8a | 56 | //virtual void orientation(); |
PhilG1300 | 0:d1a5b2ebfc8a | 57 | |
PhilG1300 | 0:d1a5b2ebfc8a | 58 | void command(int value); |
PhilG1300 | 0:d1a5b2ebfc8a | 59 | void data(int value); |
PhilG1300 | 0:d1a5b2ebfc8a | 60 | void foreground(int v); |
PhilG1300 | 0:d1a5b2ebfc8a | 61 | void background(int v); |
PhilG1300 | 0:d1a5b2ebfc8a | 62 | /* Function: locate |
PhilG1300 | 0:d1a5b2ebfc8a | 63 | * Set the text cursor to location x,y |
PhilG1300 | 0:d1a5b2ebfc8a | 64 | * |
PhilG1300 | 0:d1a5b2ebfc8a | 65 | * Variables: |
PhilG1300 | 0:d1a5b2ebfc8a | 66 | * x - An integer setting the column position |
PhilG1300 | 0:d1a5b2ebfc8a | 67 | * y - An integer setting the row position |
PhilG1300 | 0:d1a5b2ebfc8a | 68 | */ |
PhilG1300 | 0:d1a5b2ebfc8a | 69 | void locate(int column, int row); |
PhilG1300 | 0:d1a5b2ebfc8a | 70 | /* Function: newline |
PhilG1300 | 0:d1a5b2ebfc8a | 71 | * Set the text cursor to the start of the next line |
PhilG1300 | 0:d1a5b2ebfc8a | 72 | */ |
PhilG1300 | 0:d1a5b2ebfc8a | 73 | void newline(); |
PhilG1300 | 0:d1a5b2ebfc8a | 74 | virtual int _putc(int c); |
PhilG1300 | 0:d1a5b2ebfc8a | 75 | virtual int _getc() { return 0; } |
PhilG1300 | 0:d1a5b2ebfc8a | 76 | SPI _spi; |
PhilG1300 | 0:d1a5b2ebfc8a | 77 | DigitalOut _rst; |
PhilG1300 | 0:d1a5b2ebfc8a | 78 | DigitalOut _cs; |
PhilG1300 | 0:d1a5b2ebfc8a | 79 | void bitblit(int x, int y, int width, int height, const char* bitstream); |
PhilG1300 | 0:d1a5b2ebfc8a | 80 | void fill(int x, int y, int width, int height, int colour); |
PhilG1300 | 0:d1a5b2ebfc8a | 81 | void blit(int x, int y, int width, int height, const int* colour); |
PhilG1300 | 0:d1a5b2ebfc8a | 82 | /* Function: cls |
PhilG1300 | 0:d1a5b2ebfc8a | 83 | * Clear the screen |
PhilG1300 | 0:d1a5b2ebfc8a | 84 | */ |
PhilG1300 | 0:d1a5b2ebfc8a | 85 | void cls(); |
PhilG1300 | 0:d1a5b2ebfc8a | 86 | int width(); |
PhilG1300 | 0:d1a5b2ebfc8a | 87 | int height(); |
PhilG1300 | 0:d1a5b2ebfc8a | 88 | int columns(); |
PhilG1300 | 0:d1a5b2ebfc8a | 89 | int rows(); |
PhilG1300 | 0:d1a5b2ebfc8a | 90 | void putp(int v); |
PhilG1300 | 0:d1a5b2ebfc8a | 91 | void window(int x, int y, int width, int height); |
PhilG1300 | 0:d1a5b2ebfc8a | 92 | void pixel(int x, int y, int colour); |
PhilG1300 | 0:d1a5b2ebfc8a | 93 | int _row, _column, _rows, _columns, _foreground, _background, _width, _height; |
PhilG1300 | 0:d1a5b2ebfc8a | 94 | }; |
PhilG1300 | 0:d1a5b2ebfc8a | 95 | |
PhilG1300 | 0:d1a5b2ebfc8a | 96 | } |
PhilG1300 | 0:d1a5b2ebfc8a | 97 | |
PhilG1300 | 0:d1a5b2ebfc8a | 98 | #endif |
PhilG1300 | 0:d1a5b2ebfc8a | 99 | |
PhilG1300 | 0:d1a5b2ebfc8a | 100 |