Test code for LM75AIM
Revision 2:4dc9d2360484, committed 2014-08-15
- Comitter:
- edodm85
- Date:
- Fri Aug 15 12:08:18 2014 +0000
- Parent:
- 1:7d868212c8c1
- Commit message:
- Publish rev
Changed in this revision
diff -r 7d868212c8c1 -r 4dc9d2360484 LM75A.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LM75A.lib Fri Aug 15 12:08:18 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/edodm85/code/LM75A/#19dc98c810a5
diff -r 7d868212c8c1 -r 4dc9d2360484 LM75A/.lib --- a/LM75A/.lib Wed Jun 27 15:46:46 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ - \ No newline at end of file
diff -r 7d868212c8c1 -r 4dc9d2360484 LM75A/LM75A.cpp --- a/LM75A/LM75A.cpp Wed Jun 27 15:46:46 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* Copyright (C) 2012 mbed.org, MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, - * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies or - * substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#include "LM75A.h" - -#define TEMP_REG_ADDR 0x00 // Temperature address -#define CONFIG_REG_ADDR 0x01 // configuration register -Serial pc2(USBTX, USBRX); - -// costructor -LM75A::LM75A(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr){ - -} - - -// destructor -LM75A::~LM75A(){ - -} - - -float LM75A::read(){ - - const char tempRegAddr = TEMP_REG_ADDR; - - m_i2c.write(m_addr, &tempRegAddr, 1); // Pointer to the temperature register - - char cmd[2] = {0,0}; - m_i2c.read(m_addr, cmd, 2); // read temperature register - - unsigned short val = ((cmd[0] << 8) + cmd[1]) >> 7; //val = (cmd[ 1 ] << 1) | ( cmd[ 0 ] >> 7 ) ; - - pc2.printf("reg: "); - pc2.printf("%d - %d \n", cmd[1], cmd[0]); // debug - - float temp = (float) ((float)val * 0.5); - - return temp; -} - - -char LM75A::read_reg(char addr){ - - - char data[1] = {0}; - char ret = addr; - m_i2c.write(m_addr, &ret, 1); - wait_us(10); - m_i2c.read(m_addr, data, 1); // Read register content - wait_us(20); - pc2.printf("reg: %#x \n\r", data[0]); // debug - - return ret; - -} - - - -/** Write to specified MMA7660FC register -* -* @param char addr: the internal registeraddress of the MMA7660FC -* @param char data: write data to selected Register -*/ -void LM75A::write_reg(char addr, char data){ - - char data2[2] = {0, 0}; - - data2[0] = addr; - data2[1] = data; - - m_i2c.write(m_addr, data2, 2); - wait_us(50); -} -
diff -r 7d868212c8c1 -r 4dc9d2360484 LM75A/LM75A.h --- a/LM75A/LM75A.h Wed Jun 27 15:46:46 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* Copyright (C) 2012 mbed.org, MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, publish, distribute, - * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies or - * substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -//#ifndef LM75A_H -//#define LM75A_H -#pragma once - -#include "mbed.h" - - -/* Library for the LM75A temperature sensor. -The TLM75A is an I2C digital temperature sensor in a small SOP-8 package, -with a 0.5C resolution and 2C accuracy. -*/ - -class LM75A{ // Creates an instance of the class. - public: - - // Connect module at I2C address addr using I2C port pins sda and scl. - LM75A(PinName sda, PinName scl, int addr); - - - // Destroys instance. - ~LM75A(); - - // Reads the current temperature. - float read(); - - - char read_reg(char addr); - - - void write_reg(char addr, char data); - - - private: - I2C m_i2c; - int m_addr; -}; - -// #endif \ No newline at end of file
diff -r 7d868212c8c1 -r 4dc9d2360484 main.cpp --- a/main.cpp Wed Jun 27 15:46:46 2012 +0000 +++ b/main.cpp Fri Aug 15 12:08:18 2014 +0000 @@ -1,35 +1,42 @@ /* * Author: Edoardo De Marchi - * Date: 16-05-2011 - * Notes: Read temperature from LM75AIM + * Date: 15-08-2014 + * Notes: Test code for LM75AIM */ - #include "mbed.h" #include "LM75A.h" Serial pc(USBTX, USBRX); -LM75A temp(p28, p27, 0x90); //SDA, SCL, ADDRESS +DigitalOut led1(LED1); + +#if defined(TARGET_LPC1768) +LM75A Temp(p28, p27, 0x90); //SDA, SCL, ADDRESS +#elif defined(TARGET_LPC4330_M4) +LM75A Temp(I2C1_SDA, I2C1_SCL, 0x90); //sda, scl, Addr +#endif + + -int main(){ -int n = 0; - - while(1){ - float var = temp.read(); - pc.printf("The temp is: %4.2f degree Celsius\n\r", var); - temp.read_reg(0x01); - if(n == 3){ - temp.write_reg(0x01, 0x03); - n = 0; - }else{ - temp.write_reg(0x01, 0x00); - } - n++; - wait(2); - } +int main() +{ + #if defined(TARGET_LPC1768) + char* board = "LPC1768"; + #elif defined(TARGET_LPC4330_M4) + char* board = "LPC4330"; + #endif + + pc.baud(115200); + pc.printf("BOARD %s\r\n", board); + + Temp.write_reg(0x01, 0x00); - - + while(1) + { + pc.printf("The temp is: %4.2f degree Celsius\n\r", Temp.read_T()); + led1 = !led1; + wait(2); + } }
diff -r 7d868212c8c1 -r 4dc9d2360484 mbed-src.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-src.lib Fri Aug 15 12:08:18 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-src/#859ffaa7c331
diff -r 7d868212c8c1 -r 4dc9d2360484 mbed.lib --- a/mbed.lib Wed Jun 27 15:46:46 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/projects/libraries/svn/mbed/trunk@43 \ No newline at end of file