From 81d328f9772afa4b9da540c00f021505712592f8 Mon Sep 17 00:00:00 2001 From: Daniel Casner Date: Mon, 20 Jan 2014 23:12:52 -0800 Subject: [PATCH] Move formerly global variables in Adafruit_DHT driver into readDHT function so that when people use this program as a template and try to call readDHT multiple times, they don't have terrible buffer overrun errors. --- Adafruit_DHT_Driver/Adafruit_DHT | Bin 30400 -> 30335 bytes Adafruit_DHT_Driver/Adafruit_DHT.c | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Adafruit_DHT_Driver/Adafruit_DHT b/Adafruit_DHT_Driver/Adafruit_DHT index 40f4c4161c1105df67b1ffe81018b6d6be12549b..249a42e76d302531b584c7ffbc907a7a7e9df267 100755 GIT binary patch delta 7368 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 delta 7508 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 Bp_c#v diff --git a/Adafruit_DHT_Driver/Adafruit_DHT.c b/Adafruit_DHT_Driver/Adafruit_DHT.c index 9d1746be..8851fba8 100644 --- a/Adafruit_DHT_Driver/Adafruit_DHT.c +++ b/Adafruit_DHT_Driver/Adafruit_DHT.c @@ -69,10 +69,10 @@ int main(int argc, char **argv) } // main -int bits[250], data[100]; -int bitidx = 0; int readDHT(int type, int pin) { + int bits[250], data[100]; + int bitidx = 0; int counter = 0; int laststate = HIGH; int j=0;