HT1621(TS119-5, TS174 )Library

Dependents:   Demo_HT1621

Committer:
og
Date:
Sat Sep 10 09:55:39 2016 +0000
Revision:
0:2377890cc77a
HT1621(TS119-5, TS174) demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
og 0:2377890cc77a 1 /* HT1621 - Holtek RAM Mapping 32x4 LCD Controller */
og 0:2377890cc77a 2 /**
og 0:2377890cc77a 3 * TEST
og 0:2377890cc77a 4 * TS119-3
og 0:2377890cc77a 5 * TS119-5 http://www.aitendo.com/product/5152
og 0:2377890cc77a 6 * TS174 http://www.aitendo.com/product/5153
og 0:2377890cc77a 7 * http://www.holtek.com.tw/documents/10179/a33bf4b4-f0ef-4b77-94e4-3dd5d0c35f16
og 0:2377890cc77a 8 *
og 0:2377890cc77a 9 * HT1621 Library
og 0:2377890cc77a 10 * https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/wirejungle/source-archive.zip
og 0:2377890cc77a 11 *
og 0:2377890cc77a 12 * reference
og 0:2377890cc77a 13 * http://jr4pdp.blog.enjoy.jp/myblog/2016/01/lcd-ts174nblpic-da92.html
og 0:2377890cc77a 14 * http://morecatlab.akiba.coocan.jp/lab/index.php/2015/10/segment-lcd/
og 0:2377890cc77a 15 */
og 0:2377890cc77a 16 #ifndef MBED_HT1621_H
og 0:2377890cc77a 17 #define MBED_HT1621_H
og 0:2377890cc77a 18 #include "mbed.h"
og 0:2377890cc77a 19
og 0:2377890cc77a 20 class HT1621 {
og 0:2377890cc77a 21 public:
og 0:2377890cc77a 22 enum {
og 0:2377890cc77a 23 SYS_DIS = 0b00000000,
og 0:2377890cc77a 24 SYS_EN = 0b00000001,
og 0:2377890cc77a 25 LCD_OFF = 0b00000010,
og 0:2377890cc77a 26 LCD_ON = 0b00000011,
og 0:2377890cc77a 27 TIMER_DIS = 0b00000100,
og 0:2377890cc77a 28 WDT_DIS = 0b00000101,
og 0:2377890cc77a 29 TIMER_EN = 0b00000110,
og 0:2377890cc77a 30 WDT_EN = 0b00000111,
og 0:2377890cc77a 31 TONE_OFF = 0b00001000,
og 0:2377890cc77a 32 TONE_ON = 0b00001001,
og 0:2377890cc77a 33
og 0:2377890cc77a 34 //Set bias to 1/2 or 1/3 cycle
og 0:2377890cc77a 35 //Set to 2,3 or 4 connected COM lines
og 0:2377890cc77a 36 BIAS_HALF_2_COM = 0b00100000,
og 0:2377890cc77a 37 BIAS_HALF_3_COM = 0b00100100,
og 0:2377890cc77a 38 BIAS_HALF_4_COM = 0b00101000,
og 0:2377890cc77a 39 BIAS_THIRD_2_COM = 0b00100001,
og 0:2377890cc77a 40 BIAS_THIRD_3_COM = 0b00100101,
og 0:2377890cc77a 41 BIAS_THIRD_4_COM = 0b00101001,
og 0:2377890cc77a 42
og 0:2377890cc77a 43 //Don't use
og 0:2377890cc77a 44 TEST_ON = 0b11100000,
og 0:2377890cc77a 45 TEST_OFF = 0b11100011
og 0:2377890cc77a 46 } Commands;
og 0:2377890cc77a 47
og 0:2377890cc77a 48 HT1621(
og 0:2377890cc77a 49 PinName data, PinName wr, PinName rd, PinName cs
og 0:2377890cc77a 50 );
og 0:2377890cc77a 51 ~HT1621(){}
og 0:2377890cc77a 52
og 0:2377890cc77a 53
og 0:2377890cc77a 54 void sendCommand(uint8_t cmd, bool first = true, bool last = true);
og 0:2377890cc77a 55
og 0:2377890cc77a 56 void write(uint8_t address, uint8_t *data, uint8_t cnt);
og 0:2377890cc77a 57 void read(uint8_t address, uint8_t *data, uint8_t cnt);
og 0:2377890cc77a 58
og 0:2377890cc77a 59 void writeMem(uint8_t address, uint8_t data);
og 0:2377890cc77a 60 uint8_t readMem(uint8_t address);
og 0:2377890cc77a 61
og 0:2377890cc77a 62 void memset(uint8_t address, uint8_t data, uint8_t cnt);
og 0:2377890cc77a 63
og 0:2377890cc77a 64 private:
og 0:2377890cc77a 65 DigitalInOut _data;
og 0:2377890cc77a 66 DigitalOut _wr, _rd, _cs;
og 0:2377890cc77a 67 void writeBits(uint8_t data, uint8_t cnt);
og 0:2377890cc77a 68 uint8_t readBits(uint8_t cnt);
og 0:2377890cc77a 69
og 0:2377890cc77a 70 inline void initControlBus();
og 0:2377890cc77a 71 inline bool testMem();
og 0:2377890cc77a 72
og 0:2377890cc77a 73 };
og 0:2377890cc77a 74
og 0:2377890cc77a 75 #endif //HT1621_H