older Version without DMA
Fork of SPI_TFT by
SPI_TFT.h
- Committer:
- dreschpe
- Date:
- 2011-07-12
- Revision:
- 0:cccc5726bdf3
- Child:
- 1:aa3356b16080
File content as of revision 0:cccc5726bdf3:
/* mbed library for 240*320 pixel display TFT based on HX8347D LCD Controller * Copyright (c) 2011 Peter Drescher - DC2PD * * 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_SPI_TFT_H #define MBED_SPI_TFT_H #include "mbed.h" #include "GraphicsDisplay.h" #define RGB(r,g,b) (((r&0xF8)<<8)|((g&0xFC)<<3)|((b&0xF8)>>3)) //5 red | 6 green | 5 blue #define SPI_START (0x70) /* Start byte for SPI transfer */ #define SPI_RD (0x01) /* WR bit 1 within start */ #define SPI_WR (0x00) /* WR bit 0 within start */ #define SPI_DATA (0x02) /* RS bit 1 within start byte */ #define SPI_INDEX (0x00) /* RS bit 0 within start byte */ /* some RGB color definitions */ #define Black 0x0000 /* 0, 0, 0 */ #define Navy 0x000F /* 0, 0, 128 */ #define DarkGreen 0x03E0 /* 0, 128, 0 */ #define DarkCyan 0x03EF /* 0, 128, 128 */ #define Maroon 0x7800 /* 128, 0, 0 */ #define Purple 0x780F /* 128, 0, 128 */ #define Olive 0x7BE0 /* 128, 128, 0 */ #define LightGrey 0xC618 /* 192, 192, 192 */ #define DarkGrey 0x7BEF /* 128, 128, 128 */ #define Blue 0x001F /* 0, 0, 255 */ #define Green 0x07E0 /* 0, 255, 0 */ #define Cyan 0x07FF /* 0, 255, 255 */ #define Red 0xF800 /* 255, 0, 0 */ #define Magenta 0xF81F /* 255, 0, 255 */ #define Yellow 0xFFE0 /* 255, 255, 0 */ #define White 0xFFFF /* 255, 255, 255 */ class SPI_TFT : public GraphicsDisplay { public: SPI_TFT(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName reset,const char* name ="TFT"); virtual int width(); virtual int height(); virtual void pixel(int x, int y, int colour); void circle(int x, int y, int r, int colour); void line(int x0, int y0, int x1, int y1, int colour); void rect(int x0, int y0, int x1, int y1, int colour); void fillrect(int x0, int y0, int x1, int y1, int colour); void locate(int column, int row); virtual void cls (void); int columns(void); int rows(void); int _putc(int value); virtual void character(int col, int row, int c); void Bitmap(unsigned int x, unsigned int y, unsigned int w, unsigned int h,unsigned char *bitmap); void set_font(unsigned char* f); void set_orientation(unsigned int o); SPI _spi; DigitalOut _cs; DigitalOut _reset; unsigned char* font; protected: void hline(int x0, int x1, int y, int colour); void vline(int y0, int y1, int x, int colour); void window (unsigned int x, unsigned int y, unsigned int w, unsigned int h); void WindowMax (void); void tft_reset(); void wr_dat(int value); void wr_cmd(int value); void wr_dat_start(); void wr_dat_stop(); void wr_dat_only(unsigned short dat); unsigned short rd_dat(void); void wr_reg (unsigned char reg, unsigned short val); unsigned short rd_reg (unsigned char reg); unsigned int orientation; unsigned int char_x; }; #endif