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.
AT30TSE75X.h
00001 #ifndef AT30TSE75X_H 00002 #define AT30TSE75X_H 00003 00004 #include "mbed.h" 00005 00006 #define AT30TSE_TEMPERATURE_TWI_ADDR (AT30TSE75X_DEVICE_TYPE_ID_TEMP | \ 00007 (BOARD_AT30TSE_DEVICE_ADDR & 0x07)) 00008 00009 /* AT30TSE75x Device Type ID for Temperature Sensor: 0b1001xxx */ 00010 #define AT30TSE75X_DEVICE_TYPE_ID_TEMP 0x48 00011 /* AT30TSE75x Device Type ID for EEPROM: 0b1010xxx */ 00012 #define AT30TSE75X_DEVICE_TYPE_ID_EEPROM 0x50 00013 00014 #define BOARD_AT30TSE_DEVICE_ADDR 0x07 /* 0b111 */ /*CAn be varied according to the condition of A0, A1, A2*/ 00015 00016 #define AT30TSE_CONFIG_RES_9_bit 0 00017 #define AT30TSE_CONFIG_RES_10_bit 1 00018 #define AT30TSE_CONFIG_RES_11_bit 2 00019 #define AT30TSE_CONFIG_RES_12_bit 3 00020 00021 #define AT30TSE_TEMPERATURE_REG_SIZE 2 00022 00023 #if (BOARD_USING_AT30TSE != AT30TSE752) && \ 00024 (BOARD_USING_AT30TSE != AT30TSE754) && \ 00025 (BOARD_USING_AT30TSE != AT30TSE758) && \ 00026 (BOARD_USING_AT30TSE != AT30TS75) 00027 /* Using AT30TSE758 in Default */ 00028 #define BOARD_USING_AT30TSE AT30TSE758 00029 #endif 00030 00031 /* Setting the AT30TSE75x Temperature Sensor Address */ 00032 #define AT30TSE_TEMPERATURE_TWI_ADDR (AT30TSE75X_DEVICE_TYPE_ID_TEMP | \ 00033 (BOARD_AT30TSE_DEVICE_ADDR & 0x07)) 00034 00035 #define AT30TSE752 1 00036 #define AT30TSE754 2 00037 #define AT30TSE758 3 00038 #define AT30TS75 4 00039 00040 #if BOARD_USING_AT30TSE == AT30TSE752 00041 #define AT30TSE_EEPROM_TWI_ADDR (AT30TSE75X_DEVICE_TYPE_ID_EEPROM | \ 00042 (BOARD_AT30TSE_DEVICE_ADDR & 0x07)) 00043 #elif BOARD_USING_AT30TSE == AT30TSE754 00044 #define AT30TSE_EEPROM_TWI_ADDR (AT30TSE75X_DEVICE_TYPE_ID_EEPROM | \ 00045 (BOARD_AT30TSE_DEVICE_ADDR & 0x06)) 00046 #elif BOARD_USING_AT30TSE == AT30TSE758 00047 #define AT30TSE_EEPROM_TWI_ADDR (AT30TSE75X_DEVICE_TYPE_ID_EEPROM | \ 00048 (BOARD_AT30TSE_DEVICE_ADDR & 0x04)) 00049 #elif BOARD_USING_AT30TSE != AT30TS75 00050 /* Using AT30TSE758 in Default */ 00051 #define AT30TSE_EEPROM_TWI_ADDR (AT30TSE75X_DEVICE_TYPE_ID_EEPROM | \ 00052 (BOARD_AT30TSE_DEVICE_ADDR & 0x04)) 00053 #endif 00054 00055 class AT30TSE75X 00056 { 00057 public: 00058 AT30TSE75X(PinName sda, PinName scl); 00059 ~AT30TSE75X(); 00060 00061 float read_temp(); 00062 uint8_t read_eeprom(uint8_t *data, uint8_t length, uint8_t word_addr, uint8_t page); 00063 uint8_t write_eeprom(uint8_t *data, uint8_t length, uint8_t word_addr, uint8_t page); 00064 00065 I2C at30tse75x_i2c; 00066 private: 00067 uint8_t resolution = AT30TSE_CONFIG_RES_9_bit; 00068 00069 }; 00070 00071 #endif
Generated on Tue Jul 12 2022 18:18:27 by
