Added custom fonts. Added triangle drawing function
Dependents: sc100016x4lcd REVO_Updated_Steering Driving_game Arkanoid_v1 ... more
KS0108.h
- Committer:
- DimiterK
- Date:
- 2011-01-04
- Revision:
- 0:135b9a0a816e
- Child:
- 1:a368f2688222
File content as of revision 0:135b9a0a816e:
#ifndef KS0108_H #define KS0108_H #define VERSION 1 #include "mbed.h" #include "SystemFont5x7.h" /************************************************************************************/ // Commands #define LCD_ON 0x3F #define LCD_OFF 0x3E #define LCD_SET_ADD 0x40 #define LCD_SET_PAGE 0xB8 #define LCD_DISP_START 0xC0 //Controller directives #define LEFT 1 #define RIGHT 2 #define BOTH 3 #define NONE 4 // Colors #define BLACK 0xFF #define WHITE 0x00 //Screen dimensions #define SCREEN_HEIGHT 64 #define SCREEN_WIDTH 128 /***********************************************************************************/ #define absDiff(x,y) ((x>y) ? (x-y) : (y-x)) #define swap(a,b) \ do\ {\ uint8_t t;\ t=a;\ a=b;\ b=t;\ } while(0) /**************************************************************************************/ #define MAX_IMG_SIZE 128*64 typedef struct { unsigned char imgarray[MAX_IMG_SIZE]; unsigned int imgWidth; unsigned int imgHeight; }Image; /**************************************************************************************/ // Font Indices #define FONT_LENGTH 0 #define FONT_FIXED_WIDTH 2 #define FONT_HEIGHT 3 #define FONT_FIRST_CHAR 4 #define FONT_CHAR_COUNT 5 #define FONT_WIDTH_TABLE 6 typedef struct { unsigned int x; unsigned int y; unsigned int page; } LCDCoord; /****************************************************************************************/ class KS0108 { public: // Constructor: KS0108 (PinName _RST,PinName _DI, PinName _RW, PinName _E, PinName _CS1, PinName _CS2, PinName DB0, PinName DB1, PinName DB2, PinName DB3, PinName DB4, PinName DB5, PinName DB6, PinName DB7); void WriteInstruction(unsigned int Command,unsigned int side); void WriteData(unsigned int data ,unsigned char side); void WriteDataColPag(unsigned int page, unsigned int col, unsigned int data); unsigned int ReadData(); unsigned int ReadStatus(); void SelectSide(unsigned char side); void ClearScreen(); //Graphic functions void SetPixel( unsigned int x, unsigned int y, unsigned int color); void HLine(unsigned int Xaxis1, unsigned int Xaxis2 ,unsigned int Yaxis,unsigned int color); void HLineShort(unsigned int Xaxis, unsigned int Yaxis,unsigned int width ,unsigned int color); void VLine(unsigned int Xaxis, unsigned int Yaxis1 ,unsigned int Yaxis2,unsigned int color); void VLineShort(unsigned int Xaxis,unsigned int Yaxis, unsigned int height ,unsigned int color); void Line(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2, unsigned int color); void SlantyLine(unsigned int lX1, unsigned int lY1, unsigned int lX2,unsigned int lY2,unsigned int color); void DegreeLine(unsigned int x, int y,unsigned int degree,unsigned int inner_radius,unsigned int outer_radius, unsigned int color); void FullRectangle(unsigned int Xaxis1, unsigned int Yaxis1, unsigned int Xaxis2 ,unsigned int Yaxis2,unsigned int color); void EmptyRectangle(unsigned int Xaxis1,unsigned int Yaxis1, unsigned int Xaxis2,unsigned int Yaxis2,unsigned int color); void RoundRectangle(unsigned int x, unsigned int y, unsigned int width, unsigned int height, unsigned int radius, unsigned int color); void EmptyCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color); void FullCircle(unsigned int CenterX, unsigned int CenterY, unsigned int Radius,unsigned int color); void PlotEllipse(long CX, long CY, long XRadius,long YRadius, int color); void Plot4EllipsePoints(long CX,long CY, long X, long Y, int color); void FullScreenBMP (unsigned char *PictureData); double dfloor( double value ); // Font Functions void Putc (int page, int col,unsigned char c); void PutString(unsigned int x, unsigned int y,char* str); void PrintFloat(float val, unsigned int x,unsigned int y); void PrintInteger(int val,unsigned int x,unsigned int y); void CursorXY( unsigned int x, unsigned int y); private: BusInOut DB; DigitalOut RST; DigitalOut DI; DigitalOut RW; DigitalOut E; DigitalInOut CS2; DigitalInOut CS1; unsigned int color; unsigned int FontColor; unsigned int* Font; LCDCoord Coord; }; #endif