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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.