One Wire Example striped to find sensors only builds using MBED 2 Library

Dependencies:   mbed

Committer:
Roietronics
Date:
Mon Jun 05 21:11:32 2017 +0000
Revision:
0:486c7ab9114b
Initial commit of one wire example for MBED 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Roietronics 0:486c7ab9114b 1 /* DS18X20 specific values (see datasheet www.maxim-ic.com/datasheet/index.mvp/id/2812) */
Roietronics 0:486c7ab9114b 2 #ifndef _DS18X20_
Roietronics 0:486c7ab9114b 3 #define _DS18X20_
Roietronics 0:486c7ab9114b 4 #define DS18S20_ID 0x10
Roietronics 0:486c7ab9114b 5 #define DS18B20_ID 0x28
Roietronics 0:486c7ab9114b 6
Roietronics 0:486c7ab9114b 7 #define DS18X20_POWER_PARASITE 0x00
Roietronics 0:486c7ab9114b 8 #define DS18X20_POWER_EXTERN 0x01
Roietronics 0:486c7ab9114b 9 #define DS18X20_CONVERT_T 0x44
Roietronics 0:486c7ab9114b 10 #define DS18X20_READ 0xBE
Roietronics 0:486c7ab9114b 11 #define DS18X20_WRITE 0x4E
Roietronics 0:486c7ab9114b 12 #define DS18X20_EE_WRITE 0x48
Roietronics 0:486c7ab9114b 13 #define DS18X20_EE_RECALL 0xB8
Roietronics 0:486c7ab9114b 14 #define DS18X20_READ_POWER_SUPPLY 0xB4
Roietronics 0:486c7ab9114b 15
Roietronics 0:486c7ab9114b 16 #define DS18X20_OK 0x00
Roietronics 0:486c7ab9114b 17 #define DS18X20_ERROR 0x01
Roietronics 0:486c7ab9114b 18 #define DS18X20_START_FAIL 0x02
Roietronics 0:486c7ab9114b 19 #define DS18X20_ERROR_CRC 0x03
Roietronics 0:486c7ab9114b 20
Roietronics 0:486c7ab9114b 21 #define DS18B20_CONF_REG 4
Roietronics 0:486c7ab9114b 22 #define DS18B20_9_BIT 0
Roietronics 0:486c7ab9114b 23 #define DS18B20_10_BIT (1<<5)
Roietronics 0:486c7ab9114b 24 #define DS18B20_11_BIT (1<<6)
Roietronics 0:486c7ab9114b 25 #define DS18B20_12_BIT ((1<<6)|(1<<5))
Roietronics 0:486c7ab9114b 26
Roietronics 0:486c7ab9114b 27 // indefined bits in LSB if 18B20 != 12bit
Roietronics 0:486c7ab9114b 28 #define DS18B20_9_BIT_UNDF ((1<<0)|(1<<1)|(1<<2))
Roietronics 0:486c7ab9114b 29 #define DS18B20_10_BIT_UNDF ((1<<0)|(1<<1))
Roietronics 0:486c7ab9114b 30 #define DS18B20_11_BIT_UNDF ((1<<0))
Roietronics 0:486c7ab9114b 31 #define DS18B20_12_BIT_UNDF 0
Roietronics 0:486c7ab9114b 32
Roietronics 0:486c7ab9114b 33 // conversion times in ms
Roietronics 0:486c7ab9114b 34 #define DS18B20_TCONV_12BIT 750
Roietronics 0:486c7ab9114b 35 #define DS18B20_TCONV_11BIT DS18B20_TCONV_12_BIT/2
Roietronics 0:486c7ab9114b 36 #define DS18B20_TCONV_10BIT DS18B20_TCONV_12_BIT/4
Roietronics 0:486c7ab9114b 37 #define DS18B20_TCONV_9BIT DS18B20_TCONV_12_BIT/8
Roietronics 0:486c7ab9114b 38 #define DS18S20_TCONV DS18B20_TCONV_12_BIT
Roietronics 0:486c7ab9114b 39
Roietronics 0:486c7ab9114b 40 // constant to convert the fraction bits to cel*(10^-4)
Roietronics 0:486c7ab9114b 41 #define DS18X20_FRACCONV 625
Roietronics 0:486c7ab9114b 42
Roietronics 0:486c7ab9114b 43 #define DS18X20_SP_SIZE 9
Roietronics 0:486c7ab9114b 44
Roietronics 0:486c7ab9114b 45 // DS18X20 EEPROM-Support
Roietronics 0:486c7ab9114b 46 #define DS18X20_WRITE_SCRATCHPAD 0x4E
Roietronics 0:486c7ab9114b 47 #define DS18X20_COPY_SCRATCHPAD 0x48
Roietronics 0:486c7ab9114b 48 #define DS18X20_RECALL_E2 0xB8
Roietronics 0:486c7ab9114b 49 #define DS18X20_COPYSP_DELAY 10 /* ms */
Roietronics 0:486c7ab9114b 50 #define DS18X20_TH_REG 2
Roietronics 0:486c7ab9114b 51 #define DS18X20_TL_REG 3
Roietronics 0:486c7ab9114b 52
Roietronics 0:486c7ab9114b 53 uint8_t DS18X20_get_power_status(uint8_t id[]);
Roietronics 0:486c7ab9114b 54 uint8_t DS18X20_start_meas( uint8_t with_external, uint8_t id[]);
Roietronics 0:486c7ab9114b 55 uint8_t DS18X20_read_meas(uint8_t id[], uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
Roietronics 0:486c7ab9114b 56 uint8_t DS18X20_read_meas_single(uint8_t familycode, uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits);
Roietronics 0:486c7ab9114b 57 uint8_t DS18X20_meas_to_cel( uint8_t fc, uint8_t *sp, uint8_t* subzero, uint8_t* cel, uint8_t* cel_frac_bits);
Roietronics 0:486c7ab9114b 58 uint16_t DS18X20_temp_to_decicel(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits);
Roietronics 0:486c7ab9114b 59 int8_t DS18X20_temp_cmp(uint8_t subzero1, uint16_t cel1, uint8_t subzero2, uint16_t cel2);
Roietronics 0:486c7ab9114b 60 #endif