Seeed / Grove_Node

Dependencies:   BLE_API color_pixels mbed-src-nrf51822 nRF51822

Fork of BLE_LoopbackUART by Bluetooth Low Energy

Committer:
yihui
Date:
Thu Nov 06 02:22:01 2014 +0000
Revision:
9:84cb66d0375d
Grove Node initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yihui 9:84cb66d0375d 1
yihui 9:84cb66d0375d 2 #include "unified_driver.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",
yihui 9:84cb66d0375d 48 1,
yihui 9:84cb66d0375d 49 led_init,
yihui 9:84cb66d0375d 50 led_read,
yihui 9:84cb66d0375d 51 led_write,
yihui 9:84cb66d0375d 52 led_fini,
yihui 9:84cb66d0375d 53 };