aboutsummaryrefslogtreecommitdiffstats
path: root/src/adccmds.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-11-02 17:30:34 -0400
committerKevin O'Connor <kevin@koconnor.net>2016-11-02 17:36:43 -0400
commit7c8addc5c5f811eefbed901fcd182a3012e2e75b (patch)
treeede85b870f54cbc0f8e85f102d041e63d1de41c0 /src/adccmds.c
parent5419c456ace6623df45fa5089a477492ff5b5758 (diff)
downloadkutter-7c8addc5c5f811eefbed901fcd182a3012e2e75b.tar.gz
kutter-7c8addc5c5f811eefbed901fcd182a3012e2e75b.tar.xz
kutter-7c8addc5c5f811eefbed901fcd182a3012e2e75b.zip
gpio: Merge gpio_adc_sample_time() into gpio_adc_sample()
Return the number of clock ticks to wait directly from gpio_adc_sample(). This simplifies the ADC interface. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/adccmds.c')
-rw-r--r--src/adccmds.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/adccmds.c b/src/adccmds.c
index 9c70ab88..907e05d4 100644
--- a/src/adccmds.c
+++ b/src/adccmds.c
@@ -22,8 +22,9 @@ static uint8_t
analog_in_event(struct timer *timer)
{
struct analog_in *a = container_of(timer, struct analog_in, timer);
- if (gpio_adc_sample(a->pin)) {
- a->timer.waketime += gpio_adc_sample_time();
+ uint32_t sample_delay = gpio_adc_sample(a->pin);
+ if (sample_delay) {
+ a->timer.waketime += sample_delay;
return SF_RESCHEDULE;
}
uint16_t value = gpio_adc_read(a->pin);
@@ -62,7 +63,7 @@ command_query_analog_in(uint32_t *args)
{
struct analog_in *a = lookup_oid(args[0], command_config_analog_in);
sched_del_timer(&a->timer);
- gpio_adc_clear_sample(a->pin);
+ gpio_adc_cancel_sample(a->pin);
a->next_begin_time = args[1];
a->timer.waketime = a->next_begin_time;
a->sample_time = args[2];
@@ -111,7 +112,7 @@ analog_in_shutdown(void)
uint8_t i;
struct analog_in *a;
foreach_oid(i, a, command_config_analog_in) {
- gpio_adc_clear_sample(a->pin);
+ gpio_adc_cancel_sample(a->pin);
}
}
DECL_SHUTDOWN(analog_in_shutdown);