AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DHT22 auslesen

Ein Thema von Schuby · begonnen am 7. Sep 2021 · letzter Beitrag vom 7. Sep 2021
Antwort Antwort
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: DHT22 auslesen

  Alt 7. Sep 2021, 07:00
.. kannst Du die 40 Bits im uC nicht in ein Buffer schreiben,
diesen übertragen und in deinem Programm als array[0..4] of Byte einlesen.
Die Strings zu empfangen und umzuwandeln halte ich für etwas suboptimal.

uC ist ein Raspi oder ein Arduino?

Grüße
Klaus
Klaus

Geändert von Klaus01 ( 7. Sep 2021 um 07:12 Uhr)
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
102 Beiträge
 
#2

AW: DHT22 auslesen

  Alt 7. Sep 2021, 07:08
Ich Arbeite nicht mit Raspi oder ein Arduino,
mein uC ist ein Xmega.


Ja sicher würde ich gerne in m,einen uC die ersten 16 Bit
in ein Word speichern, aber ich weiß nicht wie.

Vor 20 Jahren konnte ich das mal, mit shl und $80
Ichj weiß aber nicht mehr wie das richtig geht


mfg Schuby
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: DHT22 auslesen

  Alt 7. Sep 2021, 07:27
Delphi-Quellcode:
type

  TData = packed record
    hum: Word;
    tmp: Word;
    checksum: Byte;
  end;

  TDataRecord = packed record
    case Integer of
      0: (data: TData);
      1: (rawData: Array[0..4] of Byte);
  end;

var
  dataSet: TDataRecord

datasSet.rawData := // Daten aus dem uC
tmp := dataSet.data.tmp;
hum := dataSet.data.hum;
mit diesen Hilfskonstrukten, sollte es einfach sein,
die Daten aus einem Buffer zu extahieren,

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
102 Beiträge
 
#4

AW: DHT22 auslesen

  Alt 7. Sep 2021, 07:40
Hallo Klaus, Danke für deine Hilfe.

Mir wäre es aber lieber wenn mir jmd sagen könnte
wie ich ein ww 16Bit Word auffüllen kann

ww : word;

Bekomme ich eine 0 brauche ich nur ww shl 1;
Kommt aber eine 1 ? wie schiebe ich dann eine 1 rein.


mfg Schuiby
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.166 Beiträge
 
Delphi 12 Athens
 
#5

AW: DHT22 auslesen

  Alt 7. Sep 2021, 10:53
Es gibt auch die Klasse TBits, ich kann aber nicht sagen wie performant die ist.
Kannst ja mal im Quellcode stöbern.

Jedenfalls erleichtert die den Umgang mit Bits ein wenig.

Ich würde mir aber auch einen record zusammenbauen, wo dann die zu erwartenden Felder direkt drinstehen,
und diesen entsprechend befüllen.

Das Bitschieben einer 1 müsste ungefähr so gehen:
LVal := LVal + ($01 shl LPos ); // LPos 0, ... 7 für ein Byte
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#6

AW: DHT22 auslesen

  Alt 7. Sep 2021, 15:22
Nutzt du den AVR-GCC ?
https://github.com/efthymios-ks/AVR-DHT
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
TSchnuckenbock

Registriert seit: 20. Jul 2017
Ort: Lüneburger Heide
74 Beiträge
 
Delphi XE5 Professional
 
#7

AW: DHT22 auslesen

  Alt 7. Sep 2021, 16:17
Wenn die Bits nacheinander einlaufen: Auf dem uC eine leere Word-Variable und dann mit OR-Verknüpfung die Bits da jeweils reinschubsen und jeweils mit shl nach links verschieben.

Wenn die Bits auf einmal als 40-Bit-Wert vorliegen: Mit entsprechendem $FFFF-Wert AND-Verknüpfen und mit shr um entsprechende Stellen nach rechts schieben.

So in der Art.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz