Code:
define osc 16
' -----[ Constants ]------------------------------------------------------------
' 1-Wire ROM Function Commands
ReadROM CON $33 ;read ID, serial num, CRC
MatchROM CON $55 ;look for specific device
SkipROM CON $CC ; skip rom (one device)
SearchROM CON $F0 ;
' DS2438 Memory Command functions
ConvertV CON $B4 ; convert the voltage
ConvertT CON $44 ; convert the temperature
RecallMemory CON $B8 ; set page to be read
ReadScratchpad CON $BE ; set address to be read
CopyScratchpad CON $48
WriteScratchpad CON $4E
' configuratioin register status bits
ADVdd CON %1000 ;Voltage A/D input slect Bit 1=Vdd
ADVad CON %0000 ;Voltage A/D input slect Bit 0=Vad
TB CON %10000 ;Temp conversion flag
ADB CON %1000000 ;A/D conversion flag
' -----[ Variables ]------------------------------------------------------------
DSbuffer VAR BYTE[9] BANK0
ASM ;Typcasting Variables inside of Arrays
DSstat = _DSbuffer ; byte
DStemp = _DSbuffer + 1 ; word
DSvolts = _DSbuffer + 3 ; word
DScurrent = _DSbuffer + 5 ; word
DSthres = _DSbuffer + 7 ; byte
DScrc = _DSbuffer + 8 ; byte
ENDASM
DSstat VAR BYTE EXT ; Status/Configuration
DStemp VAR WORD EXT ; Temperature
DSvolts VAR WORD EXT ; Voltage
DScurrent VAR WORD EXT ; Current
DSthres VAR BYTE EXT ; Threshold
DScrc VAR BYTE EXT ; CRC
GB1net VAR PORTC.7 ' 1-Wire net work for Bin #1
sd_tran VAR PORTC.6 ' Transmit pin
sd_receive VAR PORTC.7 ' Receive pin
' -----[ Main Code ]------------------------------------------------------------
;Initialize: ;set configuration to A/D convesion on Vad pin 4 of DS2438
Main:
OWOUT GB1net,1,[SkipRom,WriteScratchpad,$00,$00]
GetData:
OWOUT GB1net,1,[SkipRom,ConvertT]
pause 10
OWOUT GB1net,1,[SkipRom,ConvertV]
pause 10
OWOUT GB1net,1,[SkipRom,RecallMemory, $00] ' Skip ROM search, Recall Memory page 0
OWOUT GB1net,1,[SkipRom,ReadScratchpad, $00] ' Skip ROM search, Read SP
OWIN GB1net,0,[STR DSbuffer\9] ' Read 9 bytes
Serout2 sd_tran, 84,[" Scratchpad ",bin DSstat,", temp ",bin DStemp,", DSvolts "_
, bin DSvolts, ", DSthres ", bin DSthres, ", DScrc ",bin DScrc,13,10,13,10 ]
pause 5000
goto GetData
END
Bookmarks