LS020.h is a MobileLCD library for the LS020 display (used in GSM Siemens S65 family). Resolution 176x132
LS020LCD.h
- Committer:
- Wimpie
- Date:
- 2010-12-06
- Revision:
- 0:d550841cd6eb
- Child:
- 1:2269e07af50b
File content as of revision 0:d550841cd6eb:
/* mbed LS020 Library, for driving the I2C I/O Expander * Copyright (c) 2010, Wim De Roeve, port from Christian Kranz research to mbed * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * 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_LS020LCD_H #define MBED_LS020LCD_H #include "mbed.h" namespace mbed { /* Class: LS020LCD * An abstraction of the LS020 Mobile phone screen, used in Siemens S65 GSM * * Example: * > * > #include "mbed.h" * > #include "LS020LCD.h" * > * >LSO20LCD S65lcd(p5,p6,p7,p8,p9); * > * > int main() { * > S65lcd.printf("Hello World!"); * > } */ class LS020LCD { public: /* Constructor: LSO20LCD * Create and object for the LS020 LCD, using SPI and three DigitalOuts * * Variables: * mosi - SPI data out * miso - SPI data in, not used * clk - SPI clock * cs - Chip Select * rst - reset * rs - register select * rotation - orientation of the screen 0 = landscape, 1 = */ LS020LCD(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName rst, PinName rs); virtual void orientation(bool rotate, bool mirror); virtual void reset(); virtual void set_8bit_mode(char BGR); virtual void set_16bit_mode(void); virtual void set_8_color_mode(void); virtual void set_65k_color_mode(void); void fillrectangle(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color); void drawpixel(unsigned int x, unsigned int y, unsigned int color); void drawline(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color); void drawrectangle(unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int color); void fillcircle(unsigned int x0, unsigned int y0, unsigned int radius, unsigned int color); void drawcircle(unsigned int x0, unsigned int y0, unsigned int radius, unsigned int color); unsigned int putc(unsigned int x, unsigned int y, unsigned int c, unsigned int size, unsigned int font, unsigned int color, unsigned int bgcolor); void drawtext(unsigned int x, unsigned int y, char* text, unsigned int size,unsigned int font, unsigned int color, unsigned int bgcolor); void scroll(char offset); void cls(); /** Read the IO pin level * * @return The byte read */ //int read(); /** Write to the IO pins * * @param data The 8 bits to write to the IO port */ //void write(int data); private: SPI _spi; DigitalOut _rst; DigitalOut _cs; DigitalOut _rs; int _row,_column,_rows,_columns,_width, _height; bool _rotate,_mirror ; int _font,_foreground, _background; void write_cmdRG(uint8_t reg, uint8_t param); void write_cmd8(uint8_t cmd8); void write_cmd16(uint16_t cmd16); void write_data8(char data); void write_data16(uint16_t cmd16); void draw(uint16_t cmd16) ; void drawstop(void); void drawstart(void); void foreground(unsigned int color); void background(unsigned int color); void locate(int column, int row); void newline(); int columns(); int rows(); void set_cursor(unsigned int x, unsigned int y); void set_window(char x0, char y0, char x1,char y1); //void rectangle8(char x1, char y1, char x2, char y2, char color); //void putpixel(unsigned char r,unsigned char g,unsigned char b, unsigned char x, unsigned char y); }; } #endif