Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
onewire.h
00001 typedef unsigned char BYTE; 00002 00003 00004 #define MAXSENSORS 8 00005 // rom-code size including CRC 00006 #define OW_ROMCODE_SIZE 8 00007 00008 00009 00010 00011 BYTE ow_reset(void); 00012 BYTE ow_rom_search( BYTE diff, BYTE *id ); 00013 void ow_command( BYTE command, BYTE *id ); 00014 //void DS18X20_find_sensor(BYTE *diff, BYTE id[]); 00015 BYTE DS18X20_get_power_status(uint8_t id[]); 00016 00017 extern void DS18X20_show_id_uart( uint8_t *id, size_t n ); 00018 extern void DS18X20_find_sensor(uint8_t *diff, uint8_t id[]); 00019 extern uint8_t DS18X20_get_power_status(uint8_t id[]); 00020 extern uint8_t DS18X20_start_meas( uint8_t with_external, uint8_t id[]); 00021 extern uint8_t DS18X20_read_meas(uint8_t id[], uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits); 00022 extern uint8_t DS18X20_read_meas_single(uint8_t familycode, uint8_t *subzero, uint8_t *cel, uint8_t *cel_frac_bits); 00023 extern uint8_t DS18X20_meas_to_cel( uint8_t fc, uint8_t *sp, uint8_t* subzero, uint8_t* cel, uint8_t* cel_frac_bits); 00024 extern uint16_t DS18X20_temp_to_decicel(uint8_t subzero, uint8_t cel, uint8_t cel_frac_bits); 00025 extern int8_t DS18X20_temp_cmp(uint8_t subzero1, uint16_t cel1, uint8_t subzero2, uint16_t cel2); 00026 00027 00028 extern void ow_parasite_enable(void); 00029 extern void ow_parasite_disable(void); 00030 00031 #define DEBUG 1 00032 00033 #define ONEWIRE_PIN p12 00034 00035 00036 #define OW_MATCH_ROM 0x55 00037 #define OW_SKIP_ROM 0xCC 00038 #define OW_SEARCH_ROM 0xF0 00039 00040 00041 #define OW_SHORT_CIRCUIT 0xFF 00042 #define OW_SEARCH_FIRST 0xFF // start new search 00043 #define OW_PRESENCE_ERR 0x01 00044 #define OW_DATA_ERR 0xFE 00045 #define OW_LAST_DEVICE 0x00 // last device found 00046 // 0x01 ... 0x40: continue searching 00047 00048 // rom-code size including CRC 00049 #define OW_ROMCODE_SIZE 8 00050 00051 00052 #define DS18X20_POWER_PARASITE 0x00 00053 #define DS18X20_POWER_EXTERN 0x01 00054 00055 /* DS18X20 specific values (see datasheet) */ 00056 #define DS18S20_ID 0x10 00057 #define DS18B20_ID 0x28 00058 #define DS18X20_CONVERT_T 0x44 00059 #define DS18X20_READ 0xBE 00060 #define DS18X20_WRITE 0x4E 00061 #define DS18X20_EE_WRITE 0x48 00062 #define DS18X20_EE_RECALL 0xB8 00063 #define DS18X20_READ_POWER_SUPPLY 0xB4 00064 00065 #define DS18X20_OK 0x00 00066 #define DS18X20_ERROR 0x01 00067 #define DS18X20_START_FAIL 0x02 00068 #define DS18X20_ERROR_CRC 0x03 00069 00070 00071 #define DS18B20_CONF_REG 4 00072 #define DS18B20_9_BIT 0 00073 #define DS18B20_10_BIT (1<<5) 00074 #define DS18B20_11_BIT (1<<6) 00075 #define DS18B20_12_BIT ((1<<6)|(1<<5)) 00076 00077 // indefined bits in LSB if 18B20 != 12bit 00078 #define DS18B20_9_BIT_UNDF ((1<<0)|(1<<1)|(1<<2)) 00079 #define DS18B20_10_BIT_UNDF ((1<<0)|(1<<1)) 00080 #define DS18B20_11_BIT_UNDF ((1<<0)) 00081 #define DS18B20_12_BIT_UNDF 0 00082 00083 // conversion times in ms 00084 #define DS18B20_TCONV_12BIT 750 00085 #define DS18B20_TCONV_11BIT DS18B20_TCONV_12_BIT/2 00086 #define DS18B20_TCONV_10BIT DS18B20_TCONV_12_BIT/4 00087 #define DS18B20_TCONV_9BIT DS18B20_TCONV_12_BIT/8 00088 #define DS18S20_TCONV DS18B20_TCONV_12_BIT 00089 00090 // constant to convert the fraction bits to cel*(10^-4) 00091 #define DS18X20_FRACCONV 625 00092 00093 #define DS18X20_SP_SIZE 9 00094 00095 // DS18X20 EEPROM-Support 00096 #define DS18X20_WRITE_SCRATCHPAD 0x4E 00097 #define DS18X20_COPY_SCRATCHPAD 0x48 00098 #define DS18X20_RECALL_E2 0xB8 00099 #define DS18X20_COPYSP_DELAY 10 /* ms */ 00100 #define DS18X20_TH_REG 2 00101 #define DS18X20_TL_REG 3
Generated on Tue Jul 12 2022 18:13:34 by
1.7.2