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.
HD66766.h
00001 /* 00002 16bbit 80mode 00003 00004 reference 00005 00006 00007 */ 00008 #ifndef MBED_HD6676_H 00009 #define MBED_HD66766_H 00010 // register names from Peter Barrett's Microtouch code 00011 #include "mbed.h" 00012 00013 #define swap(a, b) { int16_t t = a; a = b; b = t; } 00014 00015 class HD66766 00016 { 00017 public: 00018 HD66766( 00019 PinName rd, PinName wr, PinName rs, PinName cs, PinName rst, 00020 PinName d0, PinName d1, PinName d2, PinName d3, 00021 PinName d4, PinName d5, PinName d6, PinName d7, 00022 PinName d8, PinName d9, PinName d10, PinName d11, 00023 PinName d12, PinName d13, PinName d14, PinName d15 00024 ); 00025 ~HD66766(){}; 00026 00027 size_t println(char *c); 00028 00029 uint16_t Color565(uint8_t r, uint8_t g, uint8_t b); 00030 00031 // drawing primitives! 00032 void drawPixel(uint16_t x, uint16_t y, uint16_t color); 00033 void fillScreen(uint16_t color); 00034 void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color); 00035 void drawVerticalLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color); 00036 void drawHorizontalLine(uint16_t x0, uint16_t y0, uint16_t length, uint16_t color); 00037 void drawTriangle(uint16_t x0, uint16_t y0, 00038 uint16_t x1, uint16_t y1, 00039 uint16_t x2, uint16_t y2, uint16_t color); 00040 void fillTriangle(int32_t x0, int32_t y0, 00041 int32_t x1, int32_t y1, 00042 int32_t x2, int32_t y2, 00043 uint16_t color); 00044 void drawRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color); 00045 void fillRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t color); 00046 void drawRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color); 00047 void fillRoundRect(uint16_t x0, uint16_t y0, uint16_t w, uint16_t h, uint16_t radius, uint16_t color); 00048 void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); 00049 void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); 00050 00051 void setCursor(uint16_t x, uint16_t y); 00052 void setTextColor(uint16_t c); 00053 void setTextSize(uint8_t s); 00054 virtual size_t write(uint8_t); 00055 00056 void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint8_t s = 1); 00057 void drawString(uint16_t x, uint16_t y, char *c, uint16_t color, uint8_t s = 1); 00058 00059 // commands 00060 void reset(void); 00061 void initDisplay(void); 00062 void goHome(void); 00063 void goTo(uint16_t x, uint16_t y); 00064 00065 // low level 00066 void writeData(uint16_t data) { 00067 _write(1, data); 00068 }; 00069 void writeCommand(uint16_t data) { 00070 _write(0, data); 00071 }; 00072 uint16_t readData(void); 00073 uint16_t readRegister(uint16_t addr); 00074 void writeRegister(uint16_t addr, uint16_t data); 00075 00076 uint16_t width(); 00077 uint16_t height(); 00078 static const uint16_t LCDWIDTH = 128; 00079 static const uint16_t LCDHEIGHT = 176; 00080 00081 void writeData_unsafe(uint16_t d); 00082 00083 void setWriteDir(void); 00084 void setReadDir(void); 00085 00086 void mirror(uint16_t d); 00087 uint16_t rb_swap(uint16_t c); 00088 private: 00089 00090 DigitalOut _rd, _wr, _rs, _cs, _rst; 00091 BusInOut _d; 00092 void _write(uint16_t rs, uint16_t d); 00093 uint16_t _width, _height; 00094 uint16_t _gramstart; 00095 uint16_t _rb_swap; 00096 uint16_t cursor_x, cursor_y; 00097 uint8_t textsize; 00098 uint16_t textcolor; 00099 void drawCircleHelper(uint16_t x0, uint16_t y0, uint16_t r, uint8_t corner, uint16_t color); 00100 void fillCircleHelper(uint16_t x0, uint16_t y0, uint16_t r, uint8_t corner, uint16_t delta, uint16_t color); 00101 void _delay(uint16_t t); 00102 }; 00103 #endif
Generated on Thu Jul 14 2022 06:26:39 by
1.7.2