dht11 = 1 'make this 0 For DHT22 OR use this next bit of code
If PORTA.5 = 0 Then 'for compare 11/22 only! Insert correct DHT11/22 first!!
dht11 = 0
Else
dht11 = 1
Endif
Lcdinit
WaitMs 1
Lcdcmdout LcdClear
If dht11 = 0 Then
Lcdout "DHT22"
Else
Lcdout "DHT11"
Endif
rd_dht:
WaitMs 1500 'wait for DHT
TRISC.0 = 0 'pin to output
PORTC.0 = 0 'init DHT
WaitMs 20
PORTC.0 = 1
WaitUs 30
TRISC.0 = 1 'set data pin
'read DHT bit string
ServoIn PORTC.0, dta(0) 'Wait for dht
For bfr = 31 To 0 Step -1 'number of humidity and temp 10uSec periods/DHT bit
ServoIn PORTC.0, dta(bfr)
Next bfr
For bfr = 7 To 0 Step -1 'humid HB
rxi = bfr + 24
If dta(rxi) > 5 Then tmpval.bfr = 1 Else tmpval.bfr = 0 'if > 50uSec its a '1'
Next bfr
humid.HB = tmpval
For bfr = 7 To 0 Step -1 'humid LB
rxi = bfr + 16
If dta(rxi) > 5 Then tmpval.bfr = 1 Else tmpval.bfr = 0
Next bfr
humid.LB = tmpval