|
1 // Copyright (c) 2014 Adafruit Industries |
|
2 // Author: Tony DiCola |
|
3 |
|
4 // Permission is hereby granted, free of charge, to any person obtaining a copy |
|
5 // of this software and associated documentation files (the "Software"), to deal |
|
6 // in the Software without restriction, including without limitation the rights |
|
7 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
8 // copies of the Software, and to permit persons to whom the Software is |
|
9 // furnished to do so, subject to the following conditions: |
|
10 |
|
11 // The above copyright notice and this permission notice shall be included in all |
|
12 // copies or substantial portions of the Software. |
|
13 |
|
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
15 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
16 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
17 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
18 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
19 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|
20 // SOFTWARE. |
|
21 #ifndef COMMON_DHT_READ_H |
|
22 #define COMMON_DHT_READ_H |
|
23 |
|
24 #include <stdint.h> |
|
25 |
|
26 // Define errors and return values. |
|
27 #define DHT_ERROR_TIMEOUT -1 |
|
28 #define DHT_ERROR_CHECKSUM -2 |
|
29 #define DHT_ERROR_ARGUMENT -3 |
|
30 #define DHT_ERROR_GPIO -4 |
|
31 #define DHT_SUCCESS 0 |
|
32 |
|
33 // Define sensor types. |
|
34 #define DHT11 11 |
|
35 #define DHT22 22 |
|
36 #define AM2302 22 |
|
37 |
|
38 // Busy wait delay for most accurate timing, but high CPU usage. |
|
39 // Only use this for short periods of time (a few hundred milliseconds at most)! |
|
40 void busy_wait_milliseconds(uint32_t millis); |
|
41 |
|
42 // General delay that sleeps so CPU usage is low, but accuracy is potentially bad. |
|
43 void sleep_milliseconds(uint32_t millis); |
|
44 |
|
45 // Increase scheduling priority and algorithm to try to get 'real time' results. |
|
46 void set_max_priority(void); |
|
47 |
|
48 // Drop scheduling priority back to normal/default. |
|
49 void set_default_priority(void); |
|
50 |
|
51 #endif |