2017/07/03
kt_vfd.cpp@0:94347d9bbcf4, 2017-07-03 (annotated)
- Committer:
- kojie
- Date:
- Mon Jul 03 14:14:06 2017 +0000
- Revision:
- 0:94347d9bbcf4
- Child:
- 1:e1e942d03093
2017/07/03
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kojie | 0:94347d9bbcf4 | 1 | /** |
kojie | 0:94347d9bbcf4 | 2 | * @bref VFD class imprementation |
kojie | 0:94347d9bbcf4 | 3 | * for GU140X16G-7040 |
kojie | 0:94347d9bbcf4 | 4 | */ |
kojie | 0:94347d9bbcf4 | 5 | #include "mbed.h" |
kojie | 0:94347d9bbcf4 | 6 | #include "kt_vfd.h" |
kojie | 0:94347d9bbcf4 | 7 | |
kojie | 0:94347d9bbcf4 | 8 | KT_VFD::KT_VFD(PinName rd, PinName wr, |
kojie | 0:94347d9bbcf4 | 9 | PinName d0, PinName d1, PinName d2, PinName d3, |
kojie | 0:94347d9bbcf4 | 10 | PinName d4, PinName d5, PinName d6, PinName d7) : |
kojie | 0:94347d9bbcf4 | 11 | _rd(rd), _wr(wr), |
kojie | 0:94347d9bbcf4 | 12 | _d(d0, d1, d2, d3, d4, d5, d6, d7) |
kojie | 0:94347d9bbcf4 | 13 | { |
kojie | 0:94347d9bbcf4 | 14 | _rd = 1 ; |
kojie | 0:94347d9bbcf4 | 15 | _wr = 1 ; |
kojie | 0:94347d9bbcf4 | 16 | |
kojie | 0:94347d9bbcf4 | 17 | wait_ms(100) ; |
kojie | 0:94347d9bbcf4 | 18 | writeByte(0x1b) ; |
kojie | 0:94347d9bbcf4 | 19 | writeByte(0x40) ; |
kojie | 0:94347d9bbcf4 | 20 | wait_ms(100) ; |
kojie | 0:94347d9bbcf4 | 21 | } |
kojie | 0:94347d9bbcf4 | 22 | |
kojie | 0:94347d9bbcf4 | 23 | void KT_VFD::mode(unsigned char mode) |
kojie | 0:94347d9bbcf4 | 24 | { |
kojie | 0:94347d9bbcf4 | 25 | writeByte(0x1f) ; |
kojie | 0:94347d9bbcf4 | 26 | writeByte(mode) ; |
kojie | 0:94347d9bbcf4 | 27 | } |
kojie | 0:94347d9bbcf4 | 28 | |
kojie | 0:94347d9bbcf4 | 29 | void KT_VFD::cls() |
kojie | 0:94347d9bbcf4 | 30 | { |
kojie | 0:94347d9bbcf4 | 31 | writeByte(0x0C) ; |
kojie | 0:94347d9bbcf4 | 32 | locate(0, 0) ; |
kojie | 0:94347d9bbcf4 | 33 | } |
kojie | 0:94347d9bbcf4 | 34 | |
kojie | 0:94347d9bbcf4 | 35 | void KT_VFD::locate(unsigned int x, unsigned int y) |
kojie | 0:94347d9bbcf4 | 36 | { |
kojie | 0:94347d9bbcf4 | 37 | writeByte(0x1f) ; |
kojie | 0:94347d9bbcf4 | 38 | writeByte(0x24) ; |
kojie | 0:94347d9bbcf4 | 39 | writeByte(x % 0x100) ; // xL |
kojie | 0:94347d9bbcf4 | 40 | writeByte(x / 0x100) ; // xH |
kojie | 0:94347d9bbcf4 | 41 | writeByte(y % 0x100) ; // yL |
kojie | 0:94347d9bbcf4 | 42 | writeByte(y / 0x100) ; // yH |
kojie | 0:94347d9bbcf4 | 43 | } |
kojie | 0:94347d9bbcf4 | 44 | |
kojie | 0:94347d9bbcf4 | 45 | void KT_VFD::lf() |
kojie | 0:94347d9bbcf4 | 46 | { |
kojie | 0:94347d9bbcf4 | 47 | writeByte(0x0a) ; |
kojie | 0:94347d9bbcf4 | 48 | } |
kojie | 0:94347d9bbcf4 | 49 | |
kojie | 0:94347d9bbcf4 | 50 | void KT_VFD::cr() |
kojie | 0:94347d9bbcf4 | 51 | { |
kojie | 0:94347d9bbcf4 | 52 | writeByte(0x0d) ; |
kojie | 0:94347d9bbcf4 | 53 | } |
kojie | 0:94347d9bbcf4 | 54 | |
kojie | 0:94347d9bbcf4 | 55 | int KT_VFD::_putc(int c) |
kojie | 0:94347d9bbcf4 | 56 | { |
kojie | 0:94347d9bbcf4 | 57 | if (c == '\n') { |
kojie | 0:94347d9bbcf4 | 58 | cr() ; |
kojie | 0:94347d9bbcf4 | 59 | lf() ; |
kojie | 0:94347d9bbcf4 | 60 | } else { |
kojie | 0:94347d9bbcf4 | 61 | writeByte(c) ; |
kojie | 0:94347d9bbcf4 | 62 | } |
kojie | 0:94347d9bbcf4 | 63 | return 0 ; |
kojie | 0:94347d9bbcf4 | 64 | } |
kojie | 0:94347d9bbcf4 | 65 | |
kojie | 0:94347d9bbcf4 | 66 | int KT_VFD::_getc() |
kojie | 0:94347d9bbcf4 | 67 | { |
kojie | 0:94347d9bbcf4 | 68 | return -1 ; |
kojie | 0:94347d9bbcf4 | 69 | } |
kojie | 0:94347d9bbcf4 | 70 | |
kojie | 0:94347d9bbcf4 | 71 | void KT_VFD::writeByte(unsigned char value) |
kojie | 0:94347d9bbcf4 | 72 | { |
kojie | 0:94347d9bbcf4 | 73 | bool ok ; |
kojie | 0:94347d9bbcf4 | 74 | _d[7] = 0 ; |
kojie | 0:94347d9bbcf4 | 75 | do { |
kojie | 0:94347d9bbcf4 | 76 | _rd = 0 ; |
kojie | 0:94347d9bbcf4 | 77 | wait_us(0.08) ; |
kojie | 0:94347d9bbcf4 | 78 | ok = _d[7] ; |
kojie | 0:94347d9bbcf4 | 79 | _rd = 1 ; |
kojie | 0:94347d9bbcf4 | 80 | } while (ok) ; |
kojie | 0:94347d9bbcf4 | 81 | _d[7] = 1 ; |
kojie | 0:94347d9bbcf4 | 82 | |
kojie | 0:94347d9bbcf4 | 83 | _d = value ; |
kojie | 0:94347d9bbcf4 | 84 | _wr = 0 ; |
kojie | 0:94347d9bbcf4 | 85 | wait_us(0.11) ; |
kojie | 0:94347d9bbcf4 | 86 | _wr = 1 ; |
kojie | 0:94347d9bbcf4 | 87 | wait_us(1.6) ; |
kojie | 0:94347d9bbcf4 | 88 | } |