2 DHT22 am AVR

OP #4435154
Lesenswert?

Moin,

ich habe ein kleines Problem 2 DHT22 auszulesen. Da die Lib die ich 
benutze dies nicht vorsieht möchte ich diese dazu bringen. Aber bis 
jetzt ohne Erfolg.


Im Headerfile sind die defines
dht.h
1
//setup port
2
#define DHT_DDR DDRD
3
#define DHT_PORT PORTD
4
#define DHT_PIN PIND
5
#define DHT_INPUTPIN PD7

Hier ein auszug der dht.c
1
//reset port
2
DHT_DDR |= (1<<DHT_INPUTPIN); //output
3
DHT_PORT |= (1<<DHT_INPUTPIN); //high
4
_delay_ms(100);

In der Main.c lesen den DHT aus
1
if(dht_gettemperaturehumidity(&temperature, &humidity) != -1) 
2
    {
3
      dtostrf(temperature, 3, 3, printbuff);
4
      uart_puts("temperature: "); uart_puts(printbuff); uart_puts("C");uart_puts("\r\n");
5

6
      dtostrf(humidity, 3, 3, printbuff);
7
      uart_puts("humidity: "); uart_puts(printbuff); uart_puts("%RH");uart_puts("\r\n");
8
    } 
9
    else 
10
    {
11
      uart_puts("error"); uart_puts("\r\n");
12
    }

Meine Idee ist das #define DHT_INPUTPIN PD7 wegzulassen und den die 
Bitnummer des PortD per Variable zu setzen.

dht.c
1
DHT_DDR |= (1<<variable);

main.c
1
variable = PD7;

Nur so funktioniert das leider nicht. Kann mir da evtl. jemand auf die 
sprünge helfen? Oder ist die Idee schrott?

Grüße
Steven

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren