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