2017/07/03

Dependents:   mbed_vfd_ntp

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?

UserRevisionLine numberNew 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 }