I2C 接続の温度センサ ADT7410 用のライブラリ. Library for temperature sensor ADT7410 connected using I2C interface.

Dependents:   Mbed2_ConnectTestAll Demo_ADT7410

ADT7410.hpp

Committer:
MikamiUitOpen
Date:
2016-09-14
Revision:
3:e0717c58a396
Parent:
2:c134a43c7875
Child:
4:3769397d3803

File content as of revision 3:e0717c58a396:

//--------------------------------------------------------------
//  Class for using ADT7410 (Header)
//      Default: 13-bit resolution
//  2015/09/27, Copyright (c) 2015 MIKAMI, Naoki
//--------------------------------------------------------------

#ifndef ADT7410_HPP
#define ADT7410_HPP

#include "mbed.h"

namespace Mikami
{
    class ADT7410
    {
    public:
        // Constructor
#if defined(STM32F4) || defined(STM32L0) || defined(__STM32F3xx_H)
        ADT7410(PinName sda = D14,      // SDA
                PinName scl = D15,      // SCL
                uint8_t addr = 0x90);   // I2C bus address
// Default constructor is defined for only Nucleo 
#else
        ADT7410(PinName sda,            // SDA
                PinName scl,            // SCL
                uint8_t addr = 0x90);   // I2C bus address
#endif               
        // Set configuration register
        void SetConfig(char val);
    
        // Get value in configuration register
        uint8_t GetConfig();

        // Read temperature
        float Read();
        
        // Operator shorthand for Read()
        operator float() { return Read(); }

        // Reset
        void Reset();

    protected:
        // Write single byte
        // "STOP" を送らずにふたたび "START" を送る,つまりリスタート・コンディションに
        // する場合は,"repeated" を "true" にする
        void WriteSingleByte(char reg, bool repeated = false)
        { i2c_.write(addr_, &reg, 1, repeated); };
    
    private:
        // Register addresses
        static const uint8_t TEMPER_ = 0x00;   // Temperature value MSByte
        static const uint8_t CONFIG_ = 0x03;   // Configuration
        static const uint8_t RESET_  = 0x2F;   // Software reset
        
        const uint8_t addr_;    // left-justified 7-bit slave address of ADT7410
        I2C i2c_;               // Object of I2C
    };
}
#endif  // ADT7410_HPP