Forum: Mikrocontroller und Digitale Elektronik 2 DHT22 am AVR


von Steven W. (steven1978)


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

von Steven W. (steven1978)


Lesenswert?

Bitte Löschen. War ein Fall von erst Fragen dann Denken. :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.