Bayley Wang
/
foc-ed_in_the_bot_compact
robot
LedBlinker/LedBlinker.cpp@223:b986e7cee521, 2018-10-02 (annotated)
- Committer:
- bwang
- Date:
- Tue Oct 02 07:12:01 2018 +0000
- Revision:
- 223:b986e7cee521
10/02/2018 03:10 - added overly-complicated LedBlinker class for blinking status codes over an LED, added blinker object to IOStruct, STATUS_LED to hardware.h
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 223:b986e7cee521 | 1 | #include "mbed.h" |
bwang | 223:b986e7cee521 | 2 | #include "LedBlinker.h" |
bwang | 223:b986e7cee521 | 3 | |
bwang | 223:b986e7cee521 | 4 | LedBlinker::LedBlinker(PinName p, float sample_frequency, float code_frequency) { |
bwang | 223:b986e7cee521 | 5 | _led = new DigitalOut(p); |
bwang | 223:b986e7cee521 | 6 | |
bwang | 223:b986e7cee521 | 7 | _tics_per_code = (int)(sample_frequency / code_frequency); |
bwang | 223:b986e7cee521 | 8 | _tics_per_bit = _tics_per_code / 8; |
bwang | 223:b986e7cee521 | 9 | |
bwang | 223:b986e7cee521 | 10 | _counter = 0; |
bwang | 223:b986e7cee521 | 11 | _code = 0; |
bwang | 223:b986e7cee521 | 12 | _bit = 0; |
bwang | 223:b986e7cee521 | 13 | } |
bwang | 223:b986e7cee521 | 14 | |
bwang | 223:b986e7cee521 | 15 | void LedBlinker::set_code(uint8_t code) {_code = code;} |
bwang | 223:b986e7cee521 | 16 | |
bwang | 223:b986e7cee521 | 17 | void LedBlinker::update() { |
bwang | 223:b986e7cee521 | 18 | if (_counter % _tics_per_code == 0) {_counter = 0; _bit = 0;} |
bwang | 223:b986e7cee521 | 19 | _counter++; |
bwang | 223:b986e7cee521 | 20 | if (_counter % _tics_per_bit != 0) return; |
bwang | 223:b986e7cee521 | 21 | _led->write((_code & (1 << _bit)) >> _bit); |
bwang | 223:b986e7cee521 | 22 | _bit++; |
bwang | 223:b986e7cee521 | 23 | } |