robot

Dependencies:   FastPWM3 mbed

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?

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