Hola como ya e comentado me estoy pelando con el ds 18b20-par cuando intento leer la temperatura me da como resultado 0000 0101 0101 0000 (+85°C*) ( *The power-on reset value of the temperature register is +85°C)
Según la data esto me indica que el dispositivo se encuentra en reset por conexión de la alimentación el cual no debería durar según yo mas que algunos milisegundos pero el dispositivo se encuentra permanentemente
En esta condición. mi pregunta es si lo que escribo es correcto(que el dispositivo se encuentra en power on reset) y si lo es como salgo de esta condición.
Tengo conectado el bicho en el proto con una fuente de 800ma 5vcc el pin 1 a gnd, el pin de data conectado a vcc con una resistencia 4.5k y el pin 3 sin conexión. así que no tengo idea que pueda estar pasando.
Como siempre agradezco la ayuda que me puedan brindar
Device 18F252
XTAL=20
'****** configuracion puerto serie fisico *****
HSERIAL_BAUD=9600
HSERIAL_RCSTA=%10010000
HSERIAL_TXSTA=%00100000
HSERIAL_CLEAR=On
Dim Temperature As Word ' Temperature storage
Dim Dum As Byte
Dim DumTh As Byte
Dim DumTl As Byte
Dim reg As Byte ' Dummy variable to pad OWIN
Dim TempRd As Float
Symbol DQ = PORTC.2 ' One-wire data pin
DelayMS 500 ' Wait for PICmicro to stabilise
ALL_DIGITAL = True ' Set ports to digital mode
Cls
'OWrite DQ,1, [$CC, $4E, DumTh, DumTl, $5F] 'this command set AD to 11 bits
'0.125 resolution 375ms cnv time
Mainloop:
OWrite DQ, 1, [$CC, $44] ' Start temperature conversion
While ORead DQ, 4 = 0 : Wend ' Check for still busy converting
OWrite DQ, 1, [$CC, $BE] ' Read the temperature
ORead DQ, 2, [Temperature.LowByte, Temperature.HighByte, DumTh,DumTl,reg,Dum,Dum,Dum,Dum ]
HRSOut " Bin: ", BIN8 Temperature.HighByte, BIN8 Temperature.LowByte, ", ", BIN8 reg
'show a/d value and register value to verify a/d bit setting
' TempRd = 0.125 * Temperature
TempRd = 0.0625 * Temperature
HRSOut 13, Dec TempRd, " C"
' Calculate temperature in degrees F (not valid for negative temperature)
TempRd = (TempRd *1.8 ) + 32
HRSOut ", ", Dec TempRd, " F"
DelayMS 1000 ' Display once a second
GoTo Mainloop