AKM AK9753 IR Sensor IC with I2C I/F

Committer:
Rhyme
Date:
Wed Dec 27 08:29:16 2017 +0000
Revision:
0:2eb87b5feaab
first working version, no documents yet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:2eb87b5feaab 1 /*************************************
Rhyme 0:2eb87b5feaab 2 * AK9753
Rhyme 0:2eb87b5feaab 3 * AKM Ultra-small IR Sensor IC with I2C I/F
Rhyme 0:2eb87b5feaab 4 **/
Rhyme 0:2eb87b5feaab 5 #ifndef _AK9753_H_
Rhyme 0:2eb87b5feaab 6 #define _AK9753_H_
Rhyme 0:2eb87b5feaab 7 #include "mbed.h"
Rhyme 0:2eb87b5feaab 8
Rhyme 0:2eb87b5feaab 9 class AK9753
Rhyme 0:2eb87b5feaab 10 {
Rhyme 0:2eb87b5feaab 11 public:
Rhyme 0:2eb87b5feaab 12 /**
Rhyme 0:2eb87b5feaab 13 * AK9753 constructor
Rhyme 0:2eb87b5feaab 14 *
Rhyme 0:2eb87b5feaab 15 * @param sda SDA pin
Rhyme 0:2eb87b5feaab 16 * @param sdl SCL pin
Rhyme 0:2eb87b5feaab 17 * @param addr addr of the I2C peripheral
Rhyme 0:2eb87b5feaab 18 */
Rhyme 0:2eb87b5feaab 19 AK9753(PinName sda, PinName scl, int addr);
Rhyme 0:2eb87b5feaab 20
Rhyme 0:2eb87b5feaab 21 /**
Rhyme 0:2eb87b5feaab 22 * AK9753 destructor
Rhyme 0:2eb87b5feaab 23 */
Rhyme 0:2eb87b5feaab 24 ~AK9753();
Rhyme 0:2eb87b5feaab 25
Rhyme 0:2eb87b5feaab 26 uint8_t getCompanyCode(void) ;
Rhyme 0:2eb87b5feaab 27 uint8_t getDeviceID(void) ;
Rhyme 0:2eb87b5feaab 28 bool dataReady(void) ; /* returns ST1[0], read ST2 to clear */
Rhyme 0:2eb87b5feaab 29 bool dataOverRun(void) ; /* return ST1[1], read ST2, etc, to clear */
Rhyme 0:2eb87b5feaab 30 uint8_t getINTST(void) ; /** return REG_INTST */
Rhyme 0:2eb87b5feaab 31 uint8_t getST1(void) ;
Rhyme 0:2eb87b5feaab 32 int16_t getRawIR1(void) ;
Rhyme 0:2eb87b5feaab 33 float getIR1(void) ;
Rhyme 0:2eb87b5feaab 34 int16_t getRawIR2(void) ;
Rhyme 0:2eb87b5feaab 35 float getIR2(void) ;
Rhyme 0:2eb87b5feaab 36 int16_t getRawIR3(void) ;
Rhyme 0:2eb87b5feaab 37 float getIR3(void) ;
Rhyme 0:2eb87b5feaab 38 int16_t getRawIR4(void) ;
Rhyme 0:2eb87b5feaab 39 float getIR4(void) ;
Rhyme 0:2eb87b5feaab 40 int16_t getRawTMP(void) ;
Rhyme 0:2eb87b5feaab 41 float getTMP(void) ;
Rhyme 0:2eb87b5feaab 42 uint8_t getST2(void) ;
Rhyme 0:2eb87b5feaab 43 int16_t getETH13H(void) ;
Rhyme 0:2eb87b5feaab 44 int16_t getETH13L(void) ;
Rhyme 0:2eb87b5feaab 45 int16_t getETH24H(void) ;
Rhyme 0:2eb87b5feaab 46 int16_t getETH24L(void) ;
Rhyme 0:2eb87b5feaab 47 uint8_t getEHYS13(void) ;
Rhyme 0:2eb87b5feaab 48 uint8_t getEHYS24(void) ;
Rhyme 0:2eb87b5feaab 49 uint8_t getEINTEN(void) ;
Rhyme 0:2eb87b5feaab 50 uint8_t getECNTL1(void) ;
Rhyme 0:2eb87b5feaab 51 uint8_t getCNTL2(void) ;
Rhyme 0:2eb87b5feaab 52
Rhyme 0:2eb87b5feaab 53 void setETH13H(int16_t value) ;
Rhyme 0:2eb87b5feaab 54 void setETH13L(int16_t value) ;
Rhyme 0:2eb87b5feaab 55 void setETH24H(int16_t value) ;
Rhyme 0:2eb87b5feaab 56 void setETH24L(int16_t value) ;
Rhyme 0:2eb87b5feaab 57 void setEHYS13(uint8_t value) ;
Rhyme 0:2eb87b5feaab 58 void setEHYS24(uint8_t value) ;
Rhyme 0:2eb87b5feaab 59 void setEINTEN(uint8_t value) ;
Rhyme 0:2eb87b5feaab 60 void setECNTL1(uint8_t value) ;
Rhyme 0:2eb87b5feaab 61 void software_reset(void) ;
Rhyme 0:2eb87b5feaab 62
Rhyme 0:2eb87b5feaab 63
Rhyme 0:2eb87b5feaab 64 private:
Rhyme 0:2eb87b5feaab 65 I2C m_i2c;
Rhyme 0:2eb87b5feaab 66 int m_addr;
Rhyme 0:2eb87b5feaab 67 int readRegs(int addr, uint8_t * data, int len);
Rhyme 0:2eb87b5feaab 68 int writeRegs(uint8_t * data, int len);
Rhyme 0:2eb87b5feaab 69 };
Rhyme 0:2eb87b5feaab 70
Rhyme 0:2eb87b5feaab 71 #endif /* _AK9752_H_ */