User Tools

Site Tools


en:pfw:dht22-msp430g2553-noforth

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:pfw:dht22-msp430g2553-noforth [2025-06-26 12:09] mkaen:pfw:dht22-msp430g2553-noforth [2025-06-26 12:41] (current) – [Sorce Code] mka
Line 1: Line 1:
 +===== Read DHT22 data using noForth on TI's Launchpad.  (bit bang) =====
 +
 +[[en:pfw:dht22#implementation_for_ti_s_launchpad|go back]]
 ==== Pseudocode ==== ==== Pseudocode ====
  
Line 221: Line 224:
 ( finis) ( finis)
 </code> </code>
 +
 +==== Numerical representation of the measured values ====
 +Note((This is already included in the source code.))
 +
 +
 +=== Humidity ===
 +
 +The first 16 bits coming from the DHT22 are the relative humidity in tenths of a percent. They can be processed directly with the 16-bit noForth and correspond to a positive integer. Rounded to whole digits for display purposes.
 +Here is an excerpt from the noforth source code:
 +
 +<code>
 +: .hum ( hum -- )   10 / . ." %rel" space  ;  
 +</code>
 +
 +=== Temperature ===
 +
 +The next 16 bits are the temperature in tenths of a degree Celsius. Temperatures from zero degrees and higher can be processed directly using the 16-bit noForth; they correspond to a positive integer.
 +
 +Temperatures below zero degrees are represented by the DHT22 as follows: The MSB of the 16-bits is set, but otherwise the temperature is specified as a positive integer. This number format //does not correspond// to the two's complement of noForth. Here, the MSB must first be evaluated to determine the sign. The sign is prepended for output. The measured value can then be further processed as a positive integer.  Whole degrees are displayed to the left of the decimal point, tenths to the right. The unit °C is specified.
 +<code>
 +: .tmp ( tmp -- )  
 +  dup hx 8000 and hx 8000 =  \ check MSB
 +      if [char] - 
 +      else [char] + 
 +      then emit
 +  hx 7fff and ( tmp -- +tmp )    \ reset MSB
 +  10 /mod 3 .r [char] . emit .    \ --> TTT.T
 +  [char] f decemit  [char] C emit  \ print °C
 +  space
 +  ;  
 + </code>
 +
 +
 +
en/pfw/dht22-msp430g2553-noforth.1750932570.txt.gz · Last modified: 2025-06-26 12:09 by mka