Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
als-sensor.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018, Texas Instruments Incorporated - http://www.ti.com/
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the copyright holder nor the names of its
14
* contributors may be used to endorse or promote products derived
15
* from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
21
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28
* OF THE POSSIBILITY OF SUCH DAMAGE.
29
*/
30
/**
31
* \addtogroup srf06-peripherals
32
* @{
33
*
34
* \file
35
* Driver for the SmartRF06 EB ALS sensor.
36
* \author
37
* Edvard Pettersen <e.pettersen@ti.com>
38
*/
39
/*---------------------------------------------------------------------------*/
40
#include "contiki.h"
41
#include "
dev/gpio-hal.h
"
42
#include "lib/sensors.h"
43
#include "
sys/timer.h
"
44
45
#include "
als-sensor.h
"
46
/*---------------------------------------------------------------------------*/
47
#include <Board.h>
48
49
#include <ti/drivers/ADC.h>
50
/*---------------------------------------------------------------------------*/
51
#include <stdint.h>
52
/*---------------------------------------------------------------------------*/
53
static
ADC_Handle adc_handle;
54
/*---------------------------------------------------------------------------*/
55
static
int
56
init
(
void
)
57
{
58
ADC_Params adc_params;
59
ADC_Params_init(&adc_params);
60
61
adc_handle = ADC_open(Board_ADCALS, &adc_params);
62
if
(adc_handle == NULL) {
63
return
0;
64
}
65
66
return
1;
67
}
68
/*---------------------------------------------------------------------------*/
69
static
int
70
config(
int
type,
int
enable)
71
{
72
switch
(type) {
73
case
SENSORS_HW_INIT:
74
return
init
();
75
76
case
SENSORS_ACTIVE:
77
PINCC26XX_setOutputEnable(Board_ALS_PWR,
true
);
78
PINCC26XX_setOutputEnable(Board_ALS_OUT,
false
);
79
80
if
(enable) {
81
PINCC26XX_setOutputValue(Board_ALS_PWR, 1);
82
clock_delay_usec
(2000);
83
}
else
{
84
PINCC26XX_setOutputValue(Board_ALS_PWR, 0);
85
}
86
break
;
87
88
default
:
89
break
;
90
}
91
return
1;
92
}
93
/*---------------------------------------------------------------------------*/
94
static
int
95
value
(
int
type)
96
{
97
98
uint16_t adc_value = 0;
99
int_fast16_t res = ADC_convert(adc_handle, &adc_value);
100
if
(res != ADC_STATUS_SUCCESS) {
101
return
-1;
102
}
103
104
return
(
int
)adc_value;
105
}
106
/*---------------------------------------------------------------------------*/
107
static
int
108
status(
int
type)
109
{
110
return
1;
111
}
112
/*---------------------------------------------------------------------------*/
113
SENSORS_SENSOR(
als_sensor
, ALS_SENSOR,
value
, config, status);
114
/*---------------------------------------------------------------------------*/
115
/** @} */
gpio-hal.h
Header file for the GPIO HAL.
clock_delay_usec
void clock_delay_usec(uint16_t dt)
Delay a given number of microseconds.
Definition
clock.c:150
init
static int init(void)
Definition
cc2538-rf.c:556
value
static int value(int type)
Definition
cc2538-temp-sensor.c:49
als_sensor
const struct sensors_sensor als_sensor
Exports a global symbol to be used by the sensor API.
Definition
smartrf-sensors.c:51
als-sensor.h
Header file for the SmartRF06 EB ALS sensor.
timer.h
Timer library header file.
arch
platform
simplelink
cc13xx-cc26xx
srf06
als-sensor.c
Generated on
for Contiki-NG by
1.17.0