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@0:839ecbf5cb2a, 2010-02-11 (annotated)
- Committer:
- richardparker
- Date:
- Thu Feb 11 12:21:18 2010 +0000
- Revision:
- 0:839ecbf5cb2a
- Child:
- 1:f04bcaea1d60
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 | 0:839ecbf5cb2a | 41 | void clearScreen(); | 
| richardparker | 0:839ecbf5cb2a | 42 | void drawPoint(short x, short y); | 
| richardparker | 0:839ecbf5cb2a | 43 | void drawLine(short x0, short y0, short x0, short y0); | 
| richardparker | 0:839ecbf5cb2a | 44 | void drawFilledRect(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 45 | void drawRect(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 46 | void drawEllipse(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 47 | void drawFilledEllipse(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 48 | void drawImage(unsigned short x, unsigned short y, EAImage& img); | 
| richardparker | 0:839ecbf5cb2a | 49 | void drawText(unsigned short x, unsigned short y, char* text); | 
| richardparker | 0:839ecbf5cb2a | 50 | |
| richardparker | 0:839ecbf5cb2a | 51 | inline unsigned short width() const { return 320; } | 
| richardparker | 0:839ecbf5cb2a | 52 | inline unsigned short height() const { return 240; } | 
| richardparker | 0:839ecbf5cb2a | 53 | |
| richardparker | 0:839ecbf5cb2a | 54 | inline void setPen(const EAPen& pen) { _pen = pen; } | 
| richardparker | 0:839ecbf5cb2a | 55 | inline const EAPen& pen() { return _pen; } | 
| richardparker | 0:839ecbf5cb2a | 56 | |
| richardparker | 0:839ecbf5cb2a | 57 | inline void setBrush(const EABrush& brush) { _brush = brush; } | 
| richardparker | 0:839ecbf5cb2a | 58 | inline const EABrush& brush() { return _brush; } | 
| richardparker | 0:839ecbf5cb2a | 59 | |
| richardparker | 0:839ecbf5cb2a | 60 | inline void setFont(const EAFont& font) { _font = font; } | 
| richardparker | 0:839ecbf5cb2a | 61 | inline const EAFont& font() { return _font; } | 
| richardparker | 0:839ecbf5cb2a | 62 | |
| richardparker | 0:839ecbf5cb2a | 63 | protected: | 
| richardparker | 0:839ecbf5cb2a | 64 | void _getTouch(unsigned short& x, unsigned short& y, unsigned short& z1, unsigned short& z2); | 
| richardparker | 0:839ecbf5cb2a | 65 | |
| richardparker | 0:839ecbf5cb2a | 66 | private: | 
| richardparker | 0:839ecbf5cb2a | 67 | /** | 
| richardparker | 0:839ecbf5cb2a | 68 | * PWM control for the backlight. | 
| richardparker | 0:839ecbf5cb2a | 69 | */ | 
| richardparker | 0:839ecbf5cb2a | 70 | PwmOut _backlight; | 
| richardparker | 0:839ecbf5cb2a | 71 | |
| richardparker | 0:839ecbf5cb2a | 72 | /** | 
| richardparker | 0:839ecbf5cb2a | 73 | * 4 wire spi interface for spi comms. | 
| richardparker | 0:839ecbf5cb2a | 74 | */ | 
| richardparker | 0:839ecbf5cb2a | 75 | SPI _comm; | 
| richardparker | 0:839ecbf5cb2a | 76 | DigitalOut _rs; | 
| richardparker | 0:839ecbf5cb2a | 77 | DigitalOut _cs; | 
| richardparker | 0:839ecbf5cb2a | 78 | |
| richardparker | 0:839ecbf5cb2a | 79 | /** | 
| richardparker | 0:839ecbf5cb2a | 80 | * Chip select for the touch screen. | 
| richardparker | 0:839ecbf5cb2a | 81 | */ | 
| richardparker | 0:839ecbf5cb2a | 82 | DigitalOut _tch_cs; | 
| richardparker | 0:839ecbf5cb2a | 83 | |
| richardparker | 0:839ecbf5cb2a | 84 | /** | 
| richardparker | 0:839ecbf5cb2a | 85 | * Graphic helper to store the current pen. | 
| richardparker | 0:839ecbf5cb2a | 86 | */ | 
| richardparker | 0:839ecbf5cb2a | 87 | EAPen _pen; | 
| richardparker | 0:839ecbf5cb2a | 88 | |
| richardparker | 0:839ecbf5cb2a | 89 | /** | 
| richardparker | 0:839ecbf5cb2a | 90 | * Graphic helper to store the current brush. | 
| richardparker | 0:839ecbf5cb2a | 91 | */ | 
| richardparker | 0:839ecbf5cb2a | 92 | EABrush _brush; | 
| richardparker | 0:839ecbf5cb2a | 93 | |
| richardparker | 0:839ecbf5cb2a | 94 | /** | 
| richardparker | 0:839ecbf5cb2a | 95 | * Graphic helper to store the current font. | 
| richardparker | 0:839ecbf5cb2a | 96 | */ | 
| richardparker | 0:839ecbf5cb2a | 97 | EAFont _font; | 
| richardparker | 0:839ecbf5cb2a | 98 | |
| richardparker | 0:839ecbf5cb2a | 99 | void _swap(short& i, short& j); | 
| richardparker | 0:839ecbf5cb2a | 100 | |
| richardparker | 0:839ecbf5cb2a | 101 | void _writeToDisplay(unsigned short data); | 
| richardparker | 0:839ecbf5cb2a | 102 | void _writeToRegister(unsigned short addr, unsigned short data); | 
| richardparker | 0:839ecbf5cb2a | 103 | |
| richardparker | 0:839ecbf5cb2a | 104 | void _initialise(); | 
| richardparker | 0:839ecbf5cb2a | 105 | |
| richardparker | 0:839ecbf5cb2a | 106 | void _moveTo(short x, short y); | 
| richardparker | 0:839ecbf5cb2a | 107 | void _window(short x, short y, unsigned short w, unsigned short h); | 
| richardparker | 0:839ecbf5cb2a | 108 | |
| richardparker | 0:839ecbf5cb2a | 109 | void _drawPoint(short x, short y, unsigned short c); | 
| richardparker | 0:839ecbf5cb2a | 110 | void _drawLine(short x0, short y0, short x0, short y0, unsigned short c); | 
| richardparker | 0:839ecbf5cb2a | 111 | void _drawEllipse(short cX, short cY, unsigned short w, unsigned short h, bool filled); | 
| richardparker | 0:839ecbf5cb2a | 112 | void _draw4EllipsePoints(short cX, short cY, short x, short y, bool filled); | 
| richardparker | 0:839ecbf5cb2a | 113 | |
| richardparker | 0:839ecbf5cb2a | 114 | }; | 
| richardparker | 0:839ecbf5cb2a | 115 | |
| richardparker | 0:839ecbf5cb2a | 116 | #endif |