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