fiew questions....
i have 8 ds1820 on link
1 can I use skip rom to invoke conversion, (to avoid 8 match rom conversion commands) in all sensors ? than reading I will do with match-rom....
2 how to sense/check if is the sensor on link ? but with match rom....
3 i saw that exist label after owin/out to check sensor existance, but for me this do error:
"Symbol not previusly defined (OWRDONE)
argument out of range ('389 not betveen -128 and 127)"
4 i searched from auto sensor discovery sub-s but i never foud something to start up, i sow text in ds's pdf but is to dificoult to understean evriting, with my english.... to start from scratch... (am I writed understundible that :-)
part of sensor reading code......
Code:
GetTemp:
FOR B = 0 TO BR_SENS
FOR A = 0 TO 7 ' load ROM pattern
READ eeROMS+(B*8)+A,ID[A]
NEXT A
OWOUT OW1,1,[MatchROM,STR ID\8,ConvertTemp]
NEXT B
PAUSE 500
LCDOUT $FE,1
FOR B = 0 TO BR_SENS
FOR A = 0 TO 7 ' load ROM pattern
READ eeROMS+(B*8)+A,ID[A]
NEXT A
OWOUT OW1,1,[MatchROM,STR ID\8,ReadScratch]
OWIN OW1,2,[tInLow,tInHigh]',NIJE_TU
OWPRESENT[B] = DA
GOTO TU_JE
NIJE_TU:
OWPRESENT[B] = NE
TU_JE:
TMINUS[B] = MINUS
t05[B] = NUL5
W = tempIn
' tempIn = tempIn/2 ' DJELIL0 BI SE NA POLA ZA STUPANJ ALI OVAKO IMAMO SVE <<1
'FORMAT: BIT 7 = +-, BIT 6-1 STUPNJEVI, BIT 0 = .5/.0 ZBOG BROJANJA I KOMPARACIJE
' tRESTO[b] = W|%00000001 ' tRESTO IF .5
IF !TMINUS[B] THEN NoNeg1
tempIn = tempIn | $FF00 ' extend sign bits for negs
NoNeg1:
TEMPERATURA[B] = tempIn.lowbyte ' save Celsius value
TEMP_DISP[B]=TEMPERATURA[B]&%11111110 ' IDVOJI 6 TEMP.BITOVA U "D"
TEMP_DISP[B]=TEMP_DISP[B]>>1
IF TMINUS[B] THEN TEMP_DISP[B]=TEMP_DISP[B]|128 'PRIPREMI ZA SDEC PRIKAZ NA DISP.
'IF tRESTO[b] THEN TEMPERATURA[B] = TEMPERATURA[B] | %01000000 'PAKIRANJE
tIND[B]=$0
GOSUB KOMP_TEMP
' SETIRATI INDIKATOR PO FLAGU !
IF LCD_PRIKAZ = 2 THEN
IF B = 1 THEN LCDOUT $FE,$01,$FE,$02, BIN16 W
ENDIF
'PRIKAZ NA LCD............... SVIH 8 TEMPERATURA
IF LCD_PRIKAZ = 1 THEN
SELECT CASE B
CASE 0,1
C = $2
CASE 2,3
C = $C0
CASE 4,5
C = $90
CASE 6,7
C = $D0
END select
LCDOUT $FE,C
SELECT CASE B
CASE 1,3,5,7
FOR A = 1 TO 8
LCDOUT $FE,$14
NEXT A
END SELECT
' IF W = 65535 OR W = 0 THEN
' lcdout "T-ERR ",5
' ELSE
IF !tMINUS[B] THEN lcdout "+"
lcdout SDEC2 TEMP_DISP[B],".",#(t05[B]*5),DegSym,tIND[B]
' ENDIF
ENDIF
'-------------- LCD END
NEXT B
Bookmarks