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.
ADT7310.cpp
00001 #include "ADT7310.h" 00002 00003 00004 ADT7310::ADT7310(PinName CS, PinName MOSI, PinName MISO, PinName SCK) :/* miso(MISO),*/ adt7310(MOSI, MISO, SCK), cs(CS) 00005 { 00006 cs = true; 00007 adt7310.format(8, SPI_MODE); 00008 } 00009 00010 void ADT7310::reset() 00011 { 00012 cs = false; 00013 adt7310.write(0xff); 00014 adt7310.write(0xff); 00015 adt7310.write(0xff); 00016 adt7310.write(0xff); 00017 cs = true; 00018 } 00019 uint8_t ADT7310::read_status() 00020 { 00021 uint8_t spi_data[2] = {ADT7310_READ | (ADT7310_STATUS << 3), ADT7310_DUMMY}; 00022 spi_read(spi_data, 2); 00023 return spi_data[1]; 00024 } 00025 00026 void ADT7310::start_single_conversion() 00027 { 00028 uint8_t spi_data[2] = {ADT7310_READ | (ADT7310_CONFIG << 3), ADT7310_DUMMY}; 00029 spi_read(spi_data, 2); 00030 spi_data[0] = ADT7310_WRITE | (ADT7310_CONFIG << 3); 00031 spi_data[1] = (spi_data[1] & (~(0x60))) | (0x20); // Oneshot conversion 00032 spi_write(spi_data, 2); 00033 } 00034 void ADT7310::write_config(uint8_t data) 00035 { 00036 uint8_t spi_data[2] = {ADT7310_WRITE | (ADT7310_CONFIG << 3), data}; 00037 spi_write(spi_data, 2); 00038 } 00039 00040 uint8_t ADT7310::read_config() 00041 { 00042 uint8_t spi_data[2] = {ADT7310_READ | (ADT7310_CONFIG << 3), ADT7310_DUMMY}; 00043 spi_read(spi_data, 2); 00044 return spi_data[1]; 00045 } 00046 uint16_t ADT7310::read_temp() 00047 { 00048 uint8_t spi_data[3] = {ADT7310_READ | (ADT7310_TEMP << 3), ADT7310_DUMMY, ADT7310_DUMMY }; 00049 spi_read(spi_data, 3); 00050 return ((static_cast<uint16_t>(spi_data[1]) << 8) | spi_data[2]); 00051 } 00052 void ADT7310::write_temp_setpoint(uint8_t setpoint, uint16_t data) 00053 { 00054 uint8_t spi_data[3] = {ADT7310_WRITE | (setpoint << 3), ((data & 0xff00) >> 8), data & 0xff }; 00055 spi_write(spi_data, 3); 00056 } 00057 00058 void ADT7310::spi_write(uint8_t *data, uint8_t size) 00059 { 00060 cs = false; 00061 uint8_t i; 00062 for(i = 0; i < size; i++) 00063 adt7310.write(data[i]); 00064 cs = true; 00065 00066 } 00067 void ADT7310::spi_read(uint8_t *data, uint8_t size) 00068 { 00069 cs = false; 00070 uint8_t i; 00071 for(i = 0; i < size; i++) 00072 data[i] = adt7310.write(data[i]); 00073 00074 cs = true; 00075 }
Generated on Tue Jul 12 2022 17:59:52 by
1.7.2
CN0357 - Toxic gas measurement
CN0216 - Weight Scale