SPI 接続の温度センサ ADT7310 用のライブラリ. Library for temperature sensor ADT7310 connected using SPI interface.
ADT7310.hpp@1:38a276440674, 2017-10-28 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sat Oct 28 14:51:32 2017 +0000
- Revision:
- 1:38a276440674
- Parent:
- 0:6890e1214ea6
2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:6890e1214ea6 | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 1:38a276440674 | 2 | // Class for ADT7310 on one-shot mode (Header) |
MikamiUitOpen | 0:6890e1214ea6 | 3 | // Default: 13-bit resolution |
MikamiUitOpen | 0:6890e1214ea6 | 4 | // You want to know format of command byte for SPI, |
MikamiUitOpen | 0:6890e1214ea6 | 5 | // see Table15 on data sheet of ADT7310, Rev. A p.18. |
MikamiUitOpen | 0:6890e1214ea6 | 6 | // |
MikamiUitOpen | 1:38a276440674 | 7 | // 2017/10/28, Copyright (c) 2017 MIKAMI, Naoki |
MikamiUitOpen | 0:6890e1214ea6 | 8 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:6890e1214ea6 | 9 | |
MikamiUitOpen | 0:6890e1214ea6 | 10 | #ifndef ADT7310_HPP |
MikamiUitOpen | 0:6890e1214ea6 | 11 | #define ADT7310_HPP |
MikamiUitOpen | 0:6890e1214ea6 | 12 | |
MikamiUitOpen | 0:6890e1214ea6 | 13 | #include "mbed.h" |
MikamiUitOpen | 0:6890e1214ea6 | 14 | |
MikamiUitOpen | 0:6890e1214ea6 | 15 | namespace Mikami |
MikamiUitOpen | 0:6890e1214ea6 | 16 | { |
MikamiUitOpen | 0:6890e1214ea6 | 17 | class ADT7310 |
MikamiUitOpen | 0:6890e1214ea6 | 18 | { |
MikamiUitOpen | 0:6890e1214ea6 | 19 | private: |
MikamiUitOpen | 0:6890e1214ea6 | 20 | enum Reg { ST = 0x00, CONFIG = 0x08, DATA = 0x10 }; |
MikamiUitOpen | 0:6890e1214ea6 | 21 | DigitalOut ss_; // Object for output of ss |
MikamiUitOpen | 0:6890e1214ea6 | 22 | |
MikamiUitOpen | 0:6890e1214ea6 | 23 | public: |
MikamiUitOpen | 0:6890e1214ea6 | 24 | // Constructor |
MikamiUitOpen | 0:6890e1214ea6 | 25 | ADT7310(PinName ss, // for slave select |
MikamiUitOpen | 0:6890e1214ea6 | 26 | PinName mosi = D11, // MOSI |
MikamiUitOpen | 0:6890e1214ea6 | 27 | PinName miso = D12, // MISO |
MikamiUitOpen | 0:6890e1214ea6 | 28 | PinName sck = D13); // SCK |
MikamiUitOpen | 0:6890e1214ea6 | 29 | // Software reset |
MikamiUitOpen | 0:6890e1214ea6 | 30 | void Reset(); |
MikamiUitOpen | 0:6890e1214ea6 | 31 | // Set resolution |
MikamiUitOpen | 0:6890e1214ea6 | 32 | void SetResolution16(bool res = false); |
MikamiUitOpen | 0:6890e1214ea6 | 33 | // Get specified register |
MikamiUitOpen | 0:6890e1214ea6 | 34 | uint8_t GetReg(Reg myReg); |
MikamiUitOpen | 0:6890e1214ea6 | 35 | // Get configuration register |
MikamiUitOpen | 0:6890e1214ea6 | 36 | uint8_t GetConfigReg() { return GetReg(CONFIG); } |
MikamiUitOpen | 0:6890e1214ea6 | 37 | // Get status register |
MikamiUitOpen | 0:6890e1214ea6 | 38 | uint8_t GetStatusReg() { return GetReg(ST); } |
MikamiUitOpen | 0:6890e1214ea6 | 39 | // Read data and translate to temperature |
MikamiUitOpen | 0:6890e1214ea6 | 40 | float Read(); |
MikamiUitOpen | 1:38a276440674 | 41 | |
MikamiUitOpen | 1:38a276440674 | 42 | protected: |
MikamiUitOpen | 1:38a276440674 | 43 | SPI spi_; // Object of SPI |
MikamiUitOpen | 1:38a276440674 | 44 | |
MikamiUitOpen | 1:38a276440674 | 45 | // Select SPI device |
MikamiUitOpen | 1:38a276440674 | 46 | void Select() { ss_ = 0; } |
MikamiUitOpen | 1:38a276440674 | 47 | // Deselect SPI device |
MikamiUitOpen | 1:38a276440674 | 48 | void Deselect() { ss_ = 1; } |
MikamiUitOpen | 1:38a276440674 | 49 | // Set configuration register |
MikamiUitOpen | 1:38a276440674 | 50 | void SetConfigReg(uint8_t value); |
MikamiUitOpen | 1:38a276440674 | 51 | // Pre-transform for read |
MikamiUitOpen | 1:38a276440674 | 52 | void SendRead(Reg myReg) { spi_.write(myReg | 0x40); } |
MikamiUitOpen | 1:38a276440674 | 53 | // Pre-transform for write |
MikamiUitOpen | 1:38a276440674 | 54 | void SendWrite(Reg myReg) { spi_.write(myReg); } |
MikamiUitOpen | 1:38a276440674 | 55 | // Transform data |
MikamiUitOpen | 1:38a276440674 | 56 | uint8_t SendData(uint8_t data = 0) { return spi_.write(data); } |
MikamiUitOpen | 0:6890e1214ea6 | 57 | }; |
MikamiUitOpen | 0:6890e1214ea6 | 58 | } |
MikamiUitOpen | 0:6890e1214ea6 | 59 | #endif // ADT7310_HPP |
MikamiUitOpen | 1:38a276440674 | 60 |