Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
screen/EALCD.h@3:24fbf4dbd7e5, 2010-03-31 (annotated)
- Committer:
- richardparker
- Date:
- Wed Mar 31 22:22:21 2010 +0000
- Revision:
- 3:24fbf4dbd7e5
- Parent:
- 2:2b860e764545
- Child:
- 4:f8f7f4f9c58d
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| richardparker | 0:839ecbf5cb2a | 1 | // Copyright 2010 Richard Parker | 
| richardparker | 0:839ecbf5cb2a | 2 | |
| richardparker | 0:839ecbf5cb2a | 3 | #ifndef MBED_EALCD_H | 
| richardparker | 0:839ecbf5cb2a | 4 | #define MBED_EALCD_H | 
| richardparker | 0:839ecbf5cb2a | 5 | |
| richardparker | 0:839ecbf5cb2a | 6 | #include "mbed.h" | 
| richardparker | 0:839ecbf5cb2a | 7 | |
| richardparker | 0:839ecbf5cb2a | 8 | #include "../graphics/EAPen.h" | 
| richardparker | 0:839ecbf5cb2a | 9 | #include "../graphics/EABrush.h" | 
| richardparker | 0:839ecbf5cb2a | 10 | #include "../graphics/EAFont.h" | 
| richardparker | 0:839ecbf5cb2a | 11 | #include "../widgets/EAImage.h" | 
| richardparker | 0:839ecbf5cb2a | 12 | |
| richardparker | 0:839ecbf5cb2a | 13 | class EATouch; | 
| richardparker | 0:839ecbf5cb2a | 14 | class EAImage; | 
| richardparker | 0:839ecbf5cb2a | 15 | |
| richardparker | 0:839ecbf5cb2a | 16 | /** | 
| richardparker | 0:839ecbf5cb2a | 17 | * Class encapsulating the EA LCD. | 
| richardparker | 0:839ecbf5cb2a | 18 | * @author Richard Parker | 
| richardparker | 0:839ecbf5cb2a | 19 | */ | 
| richardparker | 0:839ecbf5cb2a | 20 | class EALCD | 
| richardparker | 0:839ecbf5cb2a | 21 | { | 
| richardparker | 0:839ecbf5cb2a | 22 | public: | 
| richardparker | 0:839ecbf5cb2a | 23 | friend EATouch; | 
| richardparker | 0:839ecbf5cb2a | 24 | friend EAImage; | 
| richardparker | 0:839ecbf5cb2a | 25 | |
| richardparker | 0:839ecbf5cb2a | 26 | EALCD( PinName LED_PWM, | 
| richardparker | 0:839ecbf5cb2a | 27 | PinName LCD_RS, | 
| richardparker | 0:839ecbf5cb2a | 28 | PinName LCD_SO, | 
| richardparker | 0:839ecbf5cb2a | 29 | PinName LCD_SI, | 
| richardparker | 0:839ecbf5cb2a | 30 | PinName LCD_SCL, | 
| richardparker | 0:839ecbf5cb2a | 31 | PinName LCD_CS, | 
| richardparker | 0:839ecbf5cb2a | 32 | PinName TCH_CS); | 
| richardparker | 0:839ecbf5cb2a | 33 | ~EALCD(); | 
| richardparker | 0:839ecbf5cb2a | 34 | |
| richardparker | 0:839ecbf5cb2a | 35 | /** | 
| richardparker | 0:839ecbf5cb2a | 36 | * Sets the brightness of the display by adjusting the backlight power. | 
| richardparker | 0:839ecbf5cb2a | 37 | * @param percentage A value between 0.0 - 1.0 (fully off - fully on). | 
| richardparker | 0:839ecbf5cb2a | 38 | */ | 
| richardparker | 0:839ecbf5cb2a | 39 | void setBrightness(float percentage); | 
| richardparker | 0:839ecbf5cb2a | 40 | |
| richardparker | 1:f04bcaea1d60 | 41 | void noop(); | 
| richardparker | 1:f04bcaea1d60 | 42 | |
| richardparker | 0:839ecbf5cb2a | 43 | void clearScreen(); | 
| richardparker | 0:839ecbf5cb2a | 44 | void drawPoint(short x, short y); | 
| richardparker | 0:839ecbf5cb2a | 45 | void drawLine(short x0, short y0, short x0, short y0); | 
| richardparker | 0:839ecbf5cb2a | 46 | void drawFilledRect(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 47 | void drawRect(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 48 | void drawEllipse(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 49 | void drawFilledEllipse(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 50 | void drawImage(unsigned short x, unsigned short y, EAImage& img); | 
| richardparker | 0:839ecbf5cb2a | 51 | void drawText(unsigned short x, unsigned short y, char* text); | 
| richardparker | 0:839ecbf5cb2a | 52 | |
| richardparker | 0:839ecbf5cb2a | 53 | inline unsigned short width() const { return 320; } | 
| richardparker | 0:839ecbf5cb2a | 54 | inline unsigned short height() const { return 240; } | 
| richardparker | 0:839ecbf5cb2a | 55 | |
| richardparker | 0:839ecbf5cb2a | 56 | inline void setPen(const EAPen& pen) { _pen = pen; } | 
| richardparker | 0:839ecbf5cb2a | 57 | inline const EAPen& pen() { return _pen; } | 
| richardparker | 0:839ecbf5cb2a | 58 | |
| richardparker | 0:839ecbf5cb2a | 59 | inline void setBrush(const EABrush& brush) { _brush = brush; } | 
| richardparker | 0:839ecbf5cb2a | 60 | inline const EABrush& brush() { return _brush; } | 
| richardparker | 0:839ecbf5cb2a | 61 | |
| richardparker | 0:839ecbf5cb2a | 62 | inline void setFont(const EAFont& font) { _font = font; } | 
| richardparker | 0:839ecbf5cb2a | 63 | inline const EAFont& font() { return _font; } | 
| richardparker | 1:f04bcaea1d60 | 64 | |
| richardparker | 3:24fbf4dbd7e5 | 65 | inline float version() const { return 0.4; } | 
| richardparker | 0:839ecbf5cb2a | 66 | |
| richardparker | 0:839ecbf5cb2a | 67 | protected: | 
| richardparker | 0:839ecbf5cb2a | 68 | void _getTouch(unsigned short& x, unsigned short& y, unsigned short& z1, unsigned short& z2); | 
| richardparker | 0:839ecbf5cb2a | 69 | |
| richardparker | 0:839ecbf5cb2a | 70 | private: | 
| richardparker | 0:839ecbf5cb2a | 71 | /** | 
| richardparker | 0:839ecbf5cb2a | 72 | * PWM control for the backlight. | 
| richardparker | 0:839ecbf5cb2a | 73 | */ | 
| richardparker | 0:839ecbf5cb2a | 74 | PwmOut _backlight; | 
| richardparker | 0:839ecbf5cb2a | 75 | |
| richardparker | 0:839ecbf5cb2a | 76 | /** | 
| richardparker | 0:839ecbf5cb2a | 77 | * 4 wire spi interface for spi comms. | 
| richardparker | 0:839ecbf5cb2a | 78 | */ | 
| richardparker | 0:839ecbf5cb2a | 79 | SPI _comm; | 
| richardparker | 0:839ecbf5cb2a | 80 | DigitalOut _rs; | 
| richardparker | 0:839ecbf5cb2a | 81 | DigitalOut _cs; | 
| richardparker | 0:839ecbf5cb2a | 82 | |
| richardparker | 0:839ecbf5cb2a | 83 | /** | 
| richardparker | 0:839ecbf5cb2a | 84 | * Chip select for the touch screen. | 
| richardparker | 0:839ecbf5cb2a | 85 | */ | 
| richardparker | 0:839ecbf5cb2a | 86 | DigitalOut _tch_cs; | 
| richardparker | 0:839ecbf5cb2a | 87 | |
| richardparker | 0:839ecbf5cb2a | 88 | /** | 
| richardparker | 0:839ecbf5cb2a | 89 | * Graphic helper to store the current pen. | 
| richardparker | 0:839ecbf5cb2a | 90 | */ | 
| richardparker | 0:839ecbf5cb2a | 91 | EAPen _pen; | 
| richardparker | 0:839ecbf5cb2a | 92 | |
| richardparker | 0:839ecbf5cb2a | 93 | /** | 
| richardparker | 0:839ecbf5cb2a | 94 | * Graphic helper to store the current brush. | 
| richardparker | 0:839ecbf5cb2a | 95 | */ | 
| richardparker | 0:839ecbf5cb2a | 96 | EABrush _brush; | 
| richardparker | 0:839ecbf5cb2a | 97 | |
| richardparker | 0:839ecbf5cb2a | 98 | /** | 
| richardparker | 0:839ecbf5cb2a | 99 | * Graphic helper to store the current font. | 
| richardparker | 0:839ecbf5cb2a | 100 | */ | 
| richardparker | 0:839ecbf5cb2a | 101 | EAFont _font; | 
| richardparker | 0:839ecbf5cb2a | 102 | |
| richardparker | 0:839ecbf5cb2a | 103 | void _swap(short& i, short& j); | 
| richardparker | 0:839ecbf5cb2a | 104 | |
| richardparker | 0:839ecbf5cb2a | 105 | void _writeToDisplay(unsigned short data); | 
| richardparker | 0:839ecbf5cb2a | 106 | void _writeToRegister(unsigned short addr, unsigned short data); | 
| richardparker | 0:839ecbf5cb2a | 107 | |
| richardparker | 0:839ecbf5cb2a | 108 | void _initialise(); | 
| richardparker | 0:839ecbf5cb2a | 109 | |
| richardparker | 0:839ecbf5cb2a | 110 | void _moveTo(short x, short y); | 
| richardparker | 0:839ecbf5cb2a | 111 | void _window(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 112 | |
| richardparker | 0:839ecbf5cb2a | 113 | void _drawPoint(short x, short y, unsigned short c); | 
| richardparker | 0:839ecbf5cb2a | 114 | void _drawLine(short x0, short y0, short x0, short y0, unsigned short c); | 
| richardparker | 0:839ecbf5cb2a | 115 | void _drawEllipse(short cX, short cY, unsigned short w, unsigned short h, bool filled); | 
| richardparker | 0:839ecbf5cb2a | 116 | void _draw4EllipsePoints(short cX, short cY, short x, short y, bool filled); | 
| richardparker | 0:839ecbf5cb2a | 117 | |
| richardparker | 0:839ecbf5cb2a | 118 | }; | 
| richardparker | 0:839ecbf5cb2a | 119 | |
| richardparker | 0:839ecbf5cb2a | 120 | #endif |