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
Nur so funktioniert das leider nicht. Kann mir da evtl. jemand auf die
sprünge helfen? Oder ist die Idee schrott?
Grüße
Steven