C12832 LCD kanji interface.
Fork of GraphicOLED by
- 8×8 ドット日本語フォント「美咲フォント」
- misaki2cpp.py 美咲フォントをC++コードへ変換。
- app-board-LCD
GraphicOLED.h@2:337a2655f815, 2014-08-04 (annotated)
- Committer:
- va009039
- Date:
- Mon Aug 04 06:17:36 2014 +0000
- Revision:
- 2:337a2655f815
- Parent:
- 1:a104653979bf
- Child:
- 3:a6650dd2dbc8
remove Text LCD
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
va009039 | 0:67d983a1ed3e | 1 | // GraphicOLED.h |
va009039 | 2:337a2655f815 | 2 | #pragma once |
va009039 | 2:337a2655f815 | 3 | |
va009039 | 2:337a2655f815 | 4 | #include "mbed.h" |
va009039 | 0:67d983a1ed3e | 5 | |
va009039 | 0:67d983a1ed3e | 6 | #define iskanji(c) ((c)>=0x81 && (c)<=0x9F || (c)>=0xE0 && (c)<=0xFC) |
va009039 | 0:67d983a1ed3e | 7 | #define iskanji2(c) ((c)>=0x40 && (c)<=0xFC && (c)!=0x7F) |
va009039 | 0:67d983a1ed3e | 8 | |
va009039 | 1:a104653979bf | 9 | /** GraphicOLED interface for WS0010 |
va009039 | 1:a104653979bf | 10 | * |
va009039 | 2:337a2655f815 | 11 | * Currently support UTF-8 KANJI(misaki font) |
va009039 | 1:a104653979bf | 12 | * |
va009039 | 1:a104653979bf | 13 | * @code |
va009039 | 1:a104653979bf | 14 | * #include "mbed.h" |
va009039 | 1:a104653979bf | 15 | * #include "GraphicOLED.h" |
va009039 | 1:a104653979bf | 16 | * |
va009039 | 1:a104653979bf | 17 | * GraphicOLED oled(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7 |
va009039 | 1:a104653979bf | 18 | * |
va009039 | 1:a104653979bf | 19 | * int main() { |
va009039 | 1:a104653979bf | 20 | * oled.printf("Hello World!\n"); |
va009039 | 1:a104653979bf | 21 | * } |
va009039 | 1:a104653979bf | 22 | * @endcode |
va009039 | 1:a104653979bf | 23 | */ |
va009039 | 2:337a2655f815 | 24 | class GraphicOLED : public Stream { |
va009039 | 0:67d983a1ed3e | 25 | public: |
va009039 | 1:a104653979bf | 26 | /** Create a GraphicOLED interface |
va009039 | 1:a104653979bf | 27 | * |
va009039 | 1:a104653979bf | 28 | * @param rs Instruction/data control line |
va009039 | 1:a104653979bf | 29 | * @param e Enable line (clock) |
va009039 | 1:a104653979bf | 30 | * @param d4-d7 Data lines for using as a 4-bit interface |
va009039 | 1:a104653979bf | 31 | */ |
va009039 | 1:a104653979bf | 32 | GraphicOLED(PinName rs, PinName e, PinName d4, PinName d5, PinName d6, PinName d7); |
va009039 | 2:337a2655f815 | 33 | |
va009039 | 2:337a2655f815 | 34 | #if DOXYGEN_ONLY |
va009039 | 2:337a2655f815 | 35 | /** Write a character to the LCD |
va009039 | 2:337a2655f815 | 36 | * |
va009039 | 2:337a2655f815 | 37 | * @param c The character to write to the display |
va009039 | 2:337a2655f815 | 38 | */ |
va009039 | 2:337a2655f815 | 39 | int putc(int c); |
va009039 | 2:337a2655f815 | 40 | |
va009039 | 2:337a2655f815 | 41 | /** Write a formated string to the LCD |
va009039 | 2:337a2655f815 | 42 | * |
va009039 | 2:337a2655f815 | 43 | * @param format A printf-style format string, followed by the |
va009039 | 2:337a2655f815 | 44 | * variables to use in formating the string. |
va009039 | 2:337a2655f815 | 45 | */ |
va009039 | 2:337a2655f815 | 46 | int printf(const char* format, ...); |
va009039 | 2:337a2655f815 | 47 | #endif |
va009039 | 2:337a2655f815 | 48 | |
va009039 | 2:337a2655f815 | 49 | /** Locate to a screen column and row |
va009039 | 2:337a2655f815 | 50 | * |
va009039 | 2:337a2655f815 | 51 | * @param column The horizontal position from the left, indexed from 0 |
va009039 | 2:337a2655f815 | 52 | * @param row The vertical position from the top, indexed from 0 |
va009039 | 2:337a2655f815 | 53 | */ |
va009039 | 2:337a2655f815 | 54 | void locate(int column, int row); |
va009039 | 2:337a2655f815 | 55 | |
va009039 | 2:337a2655f815 | 56 | /** Clear the screen and locate to 0,0 */ |
va009039 | 0:67d983a1ed3e | 57 | void cls(); |
va009039 | 2:337a2655f815 | 58 | |
va009039 | 2:337a2655f815 | 59 | int rows(); |
va009039 | 0:67d983a1ed3e | 60 | int columns(); |
va009039 | 2:337a2655f815 | 61 | |
va009039 | 2:337a2655f815 | 62 | void g_write(uint8_t pat, int x, int y); |
va009039 | 2:337a2655f815 | 63 | void g_write(uint8_t *buf, int len, int x, int y); |
va009039 | 2:337a2655f815 | 64 | |
va009039 | 2:337a2655f815 | 65 | private: |
va009039 | 0:67d983a1ed3e | 66 | void character2(int column, int row, int c); |
va009039 | 0:67d983a1ed3e | 67 | bool _kanji_flag; |
va009039 | 0:67d983a1ed3e | 68 | int _kanji_1st; |
va009039 | 2:337a2655f815 | 69 | |
va009039 | 2:337a2655f815 | 70 | // Stream implementation functions |
va009039 | 2:337a2655f815 | 71 | virtual int _putc(int value); |
va009039 | 2:337a2655f815 | 72 | virtual int _getc(); |
va009039 | 2:337a2655f815 | 73 | |
va009039 | 2:337a2655f815 | 74 | int address(int column, int row); |
va009039 | 2:337a2655f815 | 75 | void character(int column, int row, int c); |
va009039 | 2:337a2655f815 | 76 | void writeByte(uint8_t value); |
va009039 | 2:337a2655f815 | 77 | void writeCommand(uint8_t command); |
va009039 | 2:337a2655f815 | 78 | void writeData(uint8_t data); |
va009039 | 2:337a2655f815 | 79 | |
va009039 | 2:337a2655f815 | 80 | DigitalOut _rs, _e; |
va009039 | 2:337a2655f815 | 81 | BusOut _d; |
va009039 | 2:337a2655f815 | 82 | |
va009039 | 2:337a2655f815 | 83 | int _column; |
va009039 | 2:337a2655f815 | 84 | int _row; |
va009039 | 0:67d983a1ed3e | 85 | }; |
va009039 | 2:337a2655f815 | 86 |