git-svn-id: https://svn.salfter.gotdns.org/svn/a2bfc/trunk@82 1b90f75b-8b96-4784-87c0-14078182fce6
31 lines
663 B
C
31 lines
663 B
C
#include "ow-temp.h"
|
|
|
|
short ow_temp_read(unsigned char* devid, unsigned char format)
|
|
{
|
|
unsigned char t1, t2;
|
|
short rawtemp;
|
|
|
|
if (devid[0]!=40)
|
|
return OW_ERR_INVALIDDEVICE;
|
|
ow_selectdevice(devid);
|
|
ow_writebyte(68); // ask for a temperature reading
|
|
ow_wait(); // wait for operation to complete
|
|
ow_selectdevice(devid);
|
|
ow_writebyte(190); // retrieve the reading
|
|
t1=ow_readbyte();
|
|
t2=ow_readbyte();
|
|
ow_reset();
|
|
|
|
rawtemp=(short)(t1+((int)t2<<8));
|
|
switch (format)
|
|
{
|
|
case OW_TEMP_FAHRENHEIT:
|
|
return (rawtemp*9+8)/80+32;
|
|
case OW_TEMP_CELSIUS:
|
|
return (rawtemp+8)>>4;
|
|
case OW_TEMP_RAW:
|
|
default:
|
|
return rawtemp;
|
|
}
|
|
}
|