http://eleshop.jp/shop/g/g96I412/
Diff: LD8035.cpp
- Revision:
- 0:f9d855cc36f4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LD8035.cpp Sun Feb 23 17:47:17 2014 +0000 @@ -0,0 +1,81 @@ +#include "LD8035.h" +#include "mbed.h" + +LD8035::LD8035(PinName G1, PinName G2, PinName G3, PinName G4, PinName G5, PinName G6, + PinName a_pin, PinName b_pin, PinName c_pin, PinName d_pin, PinName e_pin, + PinName f_pin, PinName g_pin, PinName dot_pin, PinName hyphen_pin) + : _GPin(G1,G2,G3,G4,G5,G6), _NumPin(a_pin,b_pin,c_pin,d_pin,e_pin,f_pin,g_pin), _DotPin(dot_pin), _HyphenPin(hyphen_pin) +{ + clear(); +} + +void LD8035::set_bars(int numbers[], bool dot_flags[], bool hyphen_flags[]) +{ + for(int i = 0 ; i < G_SIZE ; i++) { + _numbers[i] = numbers[i]; + _dot_flags[i] = dot_flags[i]; + _hyphen_flags[i] = hyphen_flags[i]; + } +} + +void LD8035::clear() +{ + _NumPin = 0x00; +} + +void LD8035::flush() +{ + for(int j = 0 ; j < 10 ; j++) { + for(int i = 0 ; i < G_SIZE ; i++) { + clear(); + _GPin = 1 << i; + switch(_numbers[i]) { + case 0: + _NumPin = 0x3f; + break; + case 1: + _NumPin = 0x06; + break; + case 2: + _NumPin = 0x5b; + break; + case 3: + _NumPin = 0x4f; + break; + case 4: + _NumPin = 0x66; + break; + case 5: + _NumPin = 0x6d; + break; + case 6: + _NumPin = 0x7d; + break; + case 7: + _NumPin = 0x27; + break; + case 8: + _NumPin = 0x7f; + break; + case 9: + _NumPin = 0x6f; + break; + default: + _NumPin = 0x79; + break; + } + if(_dot_flags[i] == true) { + _DotPin = 1; + } else { + _DotPin = 0; + } + if(_hyphen_flags[i] == true) { + _HyphenPin = 1; + } else { + _HyphenPin = 0; + } + wait_ms(WAIT_TIME); + } + } +} +