Maxim DS1683 Total-Elapsed -Time and Event Recorder with Alarm

Dependents:   testDS1683

Committer:
Rhyme
Date:
Wed Jan 18 23:26:24 2017 +0000
Revision:
0:7c0469e71fa2
Child:
1:8fa5400054bd
First working version.; A lot of clean up required.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:7c0469e71fa2 1 #ifndef _DS1683_H_
Rhyme 0:7c0469e71fa2 2 #define _DS1683_H_
Rhyme 0:7c0469e71fa2 3
Rhyme 0:7c0469e71fa2 4 /**
Rhyme 0:7c0469e71fa2 5 * Maxim DS1683 Total-Elasped-Time and Event Recorder with Alarm
Rhyme 0:7c0469e71fa2 6 *
Rhyme 0:7c0469e71fa2 7 * @code
Rhyme 0:7c0469e71fa2 8 * // write sample code here //
Rhyme 0:7c0469e71fa2 9 * @endcode
Rhyme 0:7c0469e71fa2 10 */
Rhyme 0:7c0469e71fa2 11
Rhyme 0:7c0469e71fa2 12 class DS1683
Rhyme 0:7c0469e71fa2 13 {
Rhyme 0:7c0469e71fa2 14 public:
Rhyme 0:7c0469e71fa2 15 /**
Rhyme 0:7c0469e71fa2 16 * DS1683 constructor
Rhyme 0:7c0469e71fa2 17 *
Rhyme 0:7c0469e71fa2 18 * @param sda SDA pin
Rhyme 0:7c0469e71fa2 19 * @param sdl SCL pin
Rhyme 0:7c0469e71fa2 20 * @param event EVENT pin (input)
Rhyme 0:7c0469e71fa2 21 * @param alarm ALARM pin (output)
Rhyme 0:7c0469e71fa2 22 * @param addr addr of the I2C peripheral
Rhyme 0:7c0469e71fa2 23 */
Rhyme 0:7c0469e71fa2 24 DS1683(PinName sda, PinName scl, PinName event, PinName alarm, int addr);
Rhyme 0:7c0469e71fa2 25
Rhyme 0:7c0469e71fa2 26 /**
Rhyme 0:7c0469e71fa2 27 * DS1683 destructor
Rhyme 0:7c0469e71fa2 28 */
Rhyme 0:7c0469e71fa2 29 ~DS1683() ;
Rhyme 0:7c0469e71fa2 30
Rhyme 0:7c0469e71fa2 31 void enterPW(uint32_t pass) ;
Rhyme 0:7c0469e71fa2 32 void setCommand(uint8_t cmd) ;
Rhyme 0:7c0469e71fa2 33 uint8_t getCommand(void) ;
Rhyme 0:7c0469e71fa2 34 void setConfig(uint8_t conf) ;
Rhyme 0:7c0469e71fa2 35 uint8_t getConfig(void) ;
Rhyme 0:7c0469e71fa2 36 uint8_t getStatus(void) ;
Rhyme 0:7c0469e71fa2 37
Rhyme 0:7c0469e71fa2 38 void clearAlarm(void) ;
Rhyme 0:7c0469e71fa2 39
Rhyme 0:7c0469e71fa2 40 void setETCAlarm(uint32_t count) ;
Rhyme 0:7c0469e71fa2 41 uint32_t getETCAlarm(void) ;
Rhyme 0:7c0469e71fa2 42 void setETC(uint32_t count) ;
Rhyme 0:7c0469e71fa2 43 uint32_t getETC(void) ;
Rhyme 0:7c0469e71fa2 44 void clearETC(void) ;
Rhyme 0:7c0469e71fa2 45
Rhyme 0:7c0469e71fa2 46 void setEventAlarm(uint16_t count) ;
Rhyme 0:7c0469e71fa2 47 uint16_t getEventAlarm(void) ;
Rhyme 0:7c0469e71fa2 48 void setEventCount(uint16_t count) ;
Rhyme 0:7c0469e71fa2 49 uint16_t getEventCount(void) ;
Rhyme 0:7c0469e71fa2 50 void clearEvent(void) ;
Rhyme 0:7c0469e71fa2 51
Rhyme 0:7c0469e71fa2 52 void enableETCAlarm(void) ;
Rhyme 0:7c0469e71fa2 53 void disableETCAlarm(void) ;
Rhyme 0:7c0469e71fa2 54 void enableEventAlarm(void) ;
Rhyme 0:7c0469e71fa2 55 void disableEventAlarm(void) ;
Rhyme 0:7c0469e71fa2 56 void alarmPol(int pol) ;
Rhyme 0:7c0469e71fa2 57 void dumpRegs(void) ;
Rhyme 0:7c0469e71fa2 58 void dumpETC(void) ;
Rhyme 0:7c0469e71fa2 59 void dumpEvent(void) ;
Rhyme 0:7c0469e71fa2 60
Rhyme 0:7c0469e71fa2 61 int write(int addr, uint8_t *data, int len) ;
Rhyme 0:7c0469e71fa2 62 int read(int addr, uint8_t *data, int len) ;
Rhyme 0:7c0469e71fa2 63 uint8_t readReg8(int addr) ;
Rhyme 0:7c0469e71fa2 64 void writeReg8(int addr, uint8_t value) ;
Rhyme 0:7c0469e71fa2 65 uint16_t readReg16(int addr) ;
Rhyme 0:7c0469e71fa2 66 void writeReg16(int addr, uint16_t value) ;
Rhyme 0:7c0469e71fa2 67 uint32_t readReg32(int addr) ;
Rhyme 0:7c0469e71fa2 68 void writeReg32(int addr, uint32_t value) ;
Rhyme 0:7c0469e71fa2 69
Rhyme 0:7c0469e71fa2 70 DigitalOut event ;
Rhyme 0:7c0469e71fa2 71 InterruptIn alarm ;
Rhyme 0:7c0469e71fa2 72
Rhyme 0:7c0469e71fa2 73 private:
Rhyme 0:7c0469e71fa2 74 I2C m_i2c ;
Rhyme 0:7c0469e71fa2 75 int m_addr ;
Rhyme 0:7c0469e71fa2 76
Rhyme 0:7c0469e71fa2 77
Rhyme 0:7c0469e71fa2 78 int readRegs(int addr, uint8_t * data, int len) ;
Rhyme 0:7c0469e71fa2 79 int writeRegs(uint8_t * data, int len) ;
Rhyme 0:7c0469e71fa2 80
Rhyme 0:7c0469e71fa2 81 } ;
Rhyme 0:7c0469e71fa2 82 #endif /* _DS1683_H_ */