Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
temp-arch.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2020 Yago Fontoura do Rosario <yago.rosario@hotmail.com.br>
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
/**
32
* \addtogroup nrf
33
* @{
34
*
35
* \addtogroup nrf-os OS drivers
36
* @{
37
*
38
* \addtogroup nrf-temp Temperature driver
39
* @{
40
*
41
* \file
42
* Temperatue implementation for the nRF.
43
* \author
44
* Yago Fontoura do Rosario <yago.rosario@hotmail.com.br>
45
*
46
*/
47
/*---------------------------------------------------------------------------*/
48
#include "contiki.h"
49
50
#include "nrfx.h"
51
52
#include "lib/sensors.h"
53
/*---------------------------------------------------------------------------*/
54
#define TEMPERATURE_SENSOR "Temperature"
55
/*---------------------------------------------------------------------------*/
56
#ifdef NRF_TEMP
57
/*---------------------------------------------------------------------------*/
58
#include "hal/nrf_temp.h"
59
/*---------------------------------------------------------------------------*/
60
#define TEMP_ARCH_WAIT_US 4
61
#define TEMP_ARCH_TRIES 10
62
/*---------------------------------------------------------------------------*/
63
/**
64
* @brief Returns device temperature
65
* @param type ignored
66
* @return Device temperature in degrees Celsius
67
*/
68
static
int
69
value
(
int
type)
70
{
71
uint8_t tries;
72
73
(void) type;
74
75
nrf_temp_event_clear(NRF_TEMP, NRF_TEMP_EVENT_DATARDY);
76
nrf_temp_task_trigger(NRF_TEMP, NRF_TEMP_TASK_START);
77
78
tries = TEMP_ARCH_TRIES;
79
do
{
80
if
(nrf_temp_event_check(NRF_TEMP, NRF_TEMP_EVENT_DATARDY)) {
81
break
;
82
}
83
NRFX_DELAY_US(TEMP_ARCH_WAIT_US);
84
}
while
(--tries);
85
86
nrf_temp_event_clear(NRF_TEMP, NRF_TEMP_EVENT_DATARDY);
87
nrf_temp_task_trigger(NRF_TEMP, NRF_TEMP_TASK_STOP);
88
89
return
nrf_temp_result_get(NRF_TEMP);
90
}
91
/*---------------------------------------------------------------------------*/
92
/**
93
* @brief Configures temperature sensor
94
* @param type ignored
95
* @param c ignored
96
* @return 1
97
*/
98
static
int
99
configure
(
int
type,
int
c)
100
{
101
(void) type;
102
(void) c;
103
104
return
1;
105
}
106
/**
107
* \brief Return temperature sensor status
108
* \param type ignored
109
* \return 1
110
*/
111
/*---------------------------------------------------------------------------*/
112
static
int
113
status
(
int
type)
114
{
115
(void) type;
116
117
return
1;
118
}
119
/*---------------------------------------------------------------------------*/
120
#else
/* NRF_TEMP */
121
/**
122
* \brief Returns device temperature
123
* \param type ignored
124
* \return Device temperature in degrees Celsius
125
*/
126
static
int
127
value
(
int
type)
128
{
129
(void) type;
130
131
return
0;
132
}
133
/*---------------------------------------------------------------------------*/
134
/**
135
* \brief Configures temperature sensor
136
* \param type ignored
137
* \param c ignored
138
* \return 1
139
*/
140
static
int
141
configure
(
int
type,
int
c)
142
{
143
(void) type;
144
(void) c;
145
146
return
0;
147
}
148
/**
149
* \brief Return temperature sensor status
150
* \param type ignored
151
* \return 1
152
*/
153
/*---------------------------------------------------------------------------*/
154
static
int
155
status
(
int
type)
156
{
157
(void) type;
158
159
return
0;
160
}
161
/*---------------------------------------------------------------------------*/
162
#endif
/* NRF_TEMP */
163
/*---------------------------------------------------------------------------*/
164
SENSORS_SENSOR(temperature_sensor, TEMPERATURE_SENSOR,
value
, configure, status);
165
/*---------------------------------------------------------------------------*/
166
/**
167
* @}
168
* @}
169
* @}
170
*/
value
static int value(int type)
Definition
cc2538-temp-sensor.c:49
configure
static int configure(int type, int c)
Configures temperature sensor.
Definition
temp-arch.c:141
value
static int value(int type)
Returns device temperature.
Definition
temp-arch.c:127
status
static int status(int type)
Return temperature sensor status.
Definition
temp-arch.c:155
arch
cpu
nrf
os
temp-arch.c
Generated on
for Contiki-NG by
1.17.0