MAX31855 Cold-Junction Compensated Thermocouple-to-Digital Converter
MAX31855.cpp@2:c4d43aacb666, 2015-07-29 (annotated)
- Committer:
- mederic
- Date:
- Wed Jul 29 13:11:30 2015 +0000
- Revision:
- 2:c4d43aacb666
- Parent:
- 1:aa96d283eead
read spi 8bit mode (to be complient with all platform)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mederic | 0:cd9dd4f2c484 | 1 | #include "MAX31855.h" |
mederic | 0:cd9dd4f2c484 | 2 | |
mederic | 0:cd9dd4f2c484 | 3 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 4 | // Constructors // |
mederic | 0:cd9dd4f2c484 | 5 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 6 | MAX31855::MAX31855(PinName mosi, PinName miso, PinName sck, PinName ncs) :_spi(mosi,miso,sck), _ncs(ncs) |
mederic | 0:cd9dd4f2c484 | 7 | { |
mederic | 0:cd9dd4f2c484 | 8 | _ncs = 1; //CS high |
mederic | 2:c4d43aacb666 | 9 | _spi.format(8,0); |
mederic | 0:cd9dd4f2c484 | 10 | _spi.frequency(1000000); |
mederic | 0:cd9dd4f2c484 | 11 | } |
mederic | 0:cd9dd4f2c484 | 12 | |
mederic | 1:aa96d283eead | 13 | MAX31855::MAX31855(SPI& spi, PinName ncs) :_spi(spi), _ncs(ncs) |
mederic | 1:aa96d283eead | 14 | { |
mederic | 1:aa96d283eead | 15 | _ncs = 1; //CS high |
mederic | 2:c4d43aacb666 | 16 | _spi.format(8,0); |
mederic | 1:aa96d283eead | 17 | _spi.frequency(1000000); |
mederic | 1:aa96d283eead | 18 | } |
mederic | 1:aa96d283eead | 19 | |
mederic | 0:cd9dd4f2c484 | 20 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 21 | // Get Set // |
mederic | 0:cd9dd4f2c484 | 22 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 23 | bool MAX31855::opened(void) |
mederic | 0:cd9dd4f2c484 | 24 | { |
mederic | 0:cd9dd4f2c484 | 25 | read(); |
mederic | 0:cd9dd4f2c484 | 26 | return _oc; |
mederic | 0:cd9dd4f2c484 | 27 | } |
mederic | 0:cd9dd4f2c484 | 28 | |
mederic | 0:cd9dd4f2c484 | 29 | bool MAX31855::fault(void) |
mederic | 0:cd9dd4f2c484 | 30 | { |
mederic | 0:cd9dd4f2c484 | 31 | read(); |
mederic | 0:cd9dd4f2c484 | 32 | return _fault; |
mederic | 0:cd9dd4f2c484 | 33 | } |
mederic | 0:cd9dd4f2c484 | 34 | |
mederic | 0:cd9dd4f2c484 | 35 | bool MAX31855::scToVcc(void) |
mederic | 0:cd9dd4f2c484 | 36 | { |
mederic | 0:cd9dd4f2c484 | 37 | read(); |
mederic | 0:cd9dd4f2c484 | 38 | return _scv; |
mederic | 0:cd9dd4f2c484 | 39 | } |
mederic | 0:cd9dd4f2c484 | 40 | |
mederic | 0:cd9dd4f2c484 | 41 | bool MAX31855::scToGnd(void) |
mederic | 0:cd9dd4f2c484 | 42 | { |
mederic | 0:cd9dd4f2c484 | 43 | read(); |
mederic | 0:cd9dd4f2c484 | 44 | return _scg; |
mederic | 0:cd9dd4f2c484 | 45 | } |
mederic | 0:cd9dd4f2c484 | 46 | |
mederic | 0:cd9dd4f2c484 | 47 | |
mederic | 0:cd9dd4f2c484 | 48 | |
mederic | 0:cd9dd4f2c484 | 49 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 50 | // Public Methods // |
mederic | 0:cd9dd4f2c484 | 51 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 52 | float MAX31855::thermocouple(void) |
mederic | 0:cd9dd4f2c484 | 53 | { |
mederic | 0:cd9dd4f2c484 | 54 | read(); |
mederic | 0:cd9dd4f2c484 | 55 | return _t; |
mederic | 0:cd9dd4f2c484 | 56 | } |
mederic | 0:cd9dd4f2c484 | 57 | |
mederic | 0:cd9dd4f2c484 | 58 | float MAX31855::chip(void) |
mederic | 0:cd9dd4f2c484 | 59 | { |
mederic | 0:cd9dd4f2c484 | 60 | read(); |
mederic | 0:cd9dd4f2c484 | 61 | return _chip_t; |
mederic | 0:cd9dd4f2c484 | 62 | } |
mederic | 0:cd9dd4f2c484 | 63 | |
mederic | 0:cd9dd4f2c484 | 64 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 65 | // Protected Methods // |
mederic | 0:cd9dd4f2c484 | 66 | //***********************************/************************************ |
mederic | 0:cd9dd4f2c484 | 67 | void MAX31855::read(void) |
mederic | 0:cd9dd4f2c484 | 68 | { |
mederic | 0:cd9dd4f2c484 | 69 | _ncs = 0; |
mederic | 2:c4d43aacb666 | 70 | unsigned short high = ((_spi.write(0)<<8)&0xff00) + ((_spi.write(0)&0x00ff)); |
mederic | 2:c4d43aacb666 | 71 | unsigned short low = ((_spi.write(0)<<8)&0xff00) + ((_spi.write(0)&0x00ff)); |
mederic | 0:cd9dd4f2c484 | 72 | _ncs = 1; |
mederic | 0:cd9dd4f2c484 | 73 | |
mederic | 0:cd9dd4f2c484 | 74 | _t = (high>>2)/4.0; |
mederic | 0:cd9dd4f2c484 | 75 | _chip_t = (low>>4)/16.0; |
mederic | 0:cd9dd4f2c484 | 76 | _fault = high&0x01; |
mederic | 0:cd9dd4f2c484 | 77 | _scv = low&0x04; |
mederic | 0:cd9dd4f2c484 | 78 | _scg = low&0x02; |
mederic | 0:cd9dd4f2c484 | 79 | _oc = low&0x01; |
mederic | 0:cd9dd4f2c484 | 80 | |
mederic | 0:cd9dd4f2c484 | 81 | } |