Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API color_pixels mbed-src-nrf51822 nRF51822
Fork of BLE_LoopbackUART by
udriver/led.cpp@10:f34ff4e47741, 2015-06-04 (annotated)
- Committer:
- yihui
- Date:
- Thu Jun 04 09:34:13 2015 +0000
- Revision:
- 10:f34ff4e47741
- Parent:
- unified_driver/led.cpp@9:84cb66d0375d
- Child:
- 11:c0885b74a63a
0.01 - sync input & output with android app
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yihui | 9:84cb66d0375d | 1 | |
yihui | 10:f34ff4e47741 | 2 | #include "udriver.h" |
yihui | 9:84cb66d0375d | 3 | #include "mbed.h" |
yihui | 9:84cb66d0375d | 4 | |
yihui | 9:84cb66d0375d | 5 | int led_init(void *obj, void *params) |
yihui | 9:84cb66d0375d | 6 | { |
yihui | 9:84cb66d0375d | 7 | int pin = *(int *)params; |
yihui | 9:84cb66d0375d | 8 | *((PwmOut **)obj) = new PwmOut((PinName)pin); |
yihui | 9:84cb66d0375d | 9 | |
yihui | 9:84cb66d0375d | 10 | return 0; |
yihui | 9:84cb66d0375d | 11 | } |
yihui | 9:84cb66d0375d | 12 | |
yihui | 9:84cb66d0375d | 13 | |
yihui | 9:84cb66d0375d | 14 | int led_read(void *obj, void *data) |
yihui | 9:84cb66d0375d | 15 | { |
yihui | 9:84cb66d0375d | 16 | PwmOut *output = *(PwmOut **)obj; |
yihui | 9:84cb66d0375d | 17 | |
yihui | 9:84cb66d0375d | 18 | *(float *)data = output->read(); |
yihui | 9:84cb66d0375d | 19 | |
yihui | 9:84cb66d0375d | 20 | return 0; |
yihui | 9:84cb66d0375d | 21 | } |
yihui | 9:84cb66d0375d | 22 | |
yihui | 9:84cb66d0375d | 23 | int led_write(void *obj, void *data) |
yihui | 9:84cb66d0375d | 24 | { |
yihui | 9:84cb66d0375d | 25 | PwmOut *pwm = *(PwmOut **)obj; |
yihui | 9:84cb66d0375d | 26 | float pulse_width = *(float *)data; |
yihui | 9:84cb66d0375d | 27 | float period = *((float *)data + 1); |
yihui | 9:84cb66d0375d | 28 | |
yihui | 9:84cb66d0375d | 29 | pwm->write(pulse_width); |
yihui | 9:84cb66d0375d | 30 | if (0 != period) { |
yihui | 9:84cb66d0375d | 31 | pwm->period(period); |
yihui | 9:84cb66d0375d | 32 | } |
yihui | 9:84cb66d0375d | 33 | |
yihui | 9:84cb66d0375d | 34 | return 0; |
yihui | 9:84cb66d0375d | 35 | } |
yihui | 9:84cb66d0375d | 36 | |
yihui | 9:84cb66d0375d | 37 | int led_fini(void *obj) |
yihui | 9:84cb66d0375d | 38 | { |
yihui | 9:84cb66d0375d | 39 | PwmOut *ptr = *(PwmOut **)obj; |
yihui | 9:84cb66d0375d | 40 | delete ptr; |
yihui | 9:84cb66d0375d | 41 | |
yihui | 9:84cb66d0375d | 42 | return 0; |
yihui | 9:84cb66d0375d | 43 | } |
yihui | 9:84cb66d0375d | 44 | |
yihui | 9:84cb66d0375d | 45 | driver_t led_driver = |
yihui | 9:84cb66d0375d | 46 | { |
yihui | 9:84cb66d0375d | 47 | led_init, |
yihui | 9:84cb66d0375d | 48 | led_read, |
yihui | 9:84cb66d0375d | 49 | led_write, |
yihui | 9:84cb66d0375d | 50 | led_fini, |
yihui | 10:f34ff4e47741 | 51 | |
yihui | 10:f34ff4e47741 | 52 | 2, |
yihui | 9:84cb66d0375d | 53 | }; |