Maxim DS1683 Total-Elapsed -Time and Event Recorder with Alarm
Diff: DS1683.cpp
- Revision:
- 1:8fa5400054bd
- Parent:
- 0:7c0469e71fa2
- Child:
- 2:f262ba460525
--- a/DS1683.cpp Wed Jan 18 23:26:24 2017 +0000 +++ b/DS1683.cpp Thu Jan 19 02:45:15 2017 +0000 @@ -98,7 +98,8 @@ { int result ; result = readRegs(addr, data, len) ; - wait(0.01) ; + wait_ms(1000) ; +// wait(0.01) ; return( result ) ; } @@ -112,6 +113,7 @@ buf[i+1] = data[i] ; } ack = writeRegs(buf, len+1) ; +// wait_ms(1000) ; wait(0.01) ; delete buf ; return( ack ) ; @@ -128,6 +130,7 @@ int DS1683::writeRegs(uint8_t * data, int len) { int ack ; m_i2c.stop() ; +// wait_ms(1000) ; wait(0.01) ; ack = m_i2c.write(m_addr, (char *)data, len); m_i2c.stop() ; @@ -161,20 +164,11 @@ void DS1683::writeReg16(int addr, uint16_t value) { -#if 0 uint8_t data[3] ; data[0] = addr ; data[1] = value & 0xFF ; data[2] = (value >> 8) & 0xFF ; writeRegs(data, 3) ; -#endif - uint8_t data[2] ; - data[0] = addr ; - data[1] = value & 0xFF ; - writeRegs(data, 2) ; - data[0] = addr+1 ; - data[1] = (value >> 8) & 0xFF ; - writeRegs(data, 2) ; } uint32_t DS1683::readReg32(int addr) @@ -191,7 +185,6 @@ void DS1683::writeReg32(int addr, uint32_t value) { -#if 0 uint8_t data[5] ; data[0] = addr ; data[1] = value & 0xFF ; @@ -199,28 +192,6 @@ data[3] = (value >> 16) & 0xFF ; data[4] = (value >> 24) & 0xFF ; writeRegs(data, 5) ; -#endif - uint8_t data[2] ; - data[0] = addr ; - data[1] = value & 0xFF ; -printf("mem[%02X] = %02x\n", data[0], data[1]) ; -// writeRegs(data, 2) ; - writeReg8(data[0], data[1]) ; - data[0] = addr + 1; - data[1] = (value >> 8) & 0xFF ; -printf("mem[%02X] = %02x\n", data[0], data[1]) ; -// writeRegs(data, 2) ; - writeReg8(data[0], data[1]) ; - data[0] = addr +2 ; - data[1] = (value >> 16) & 0xFF ; -printf("mem[%02X] = %02x\n", data[0], data[1]) ; -// writeRegs(data, 2) ; - writeReg8(data[0], data[1]) ; - data[0] = addr + 3; - data[1] = (value >> 24) & 0xFF ; -printf("mem[%02X] = %02x\n", data[0], data[1]) ; -// writeRegs(data, 2) ; - writeReg8(data[0], data[1]) ; } void DS1683::setConfig(uint8_t conf) @@ -257,14 +228,22 @@ { return(readReg16(REG_EVENT)) ; } - + +void DS1683::clearRegs(void) +{ + writeReg16(REG_ECAL, 0x0000) ; + writeReg16(REG_EVENT, 0x0000) ; + writeReg32(REG_ETCAL, 0x00000000) ; + writeReg32(REG_ETC, 0x00000000) ; + writeReg8(REG_CONFIG, 0x00) ; +} + void DS1683::dumpRegs(void) { - uint8_t data[5] ; -// printf("m_addr = 0x%02X ", m_addr) ; -data[0] = 0 ; - readRegs(REG_COMMAND, data, 1) ; - printf("Command: 0x%02X ", data[0]) ; + // uint8_t data[5] ; +//data[0] = 0 ; +// readRegs(REG_COMMAND, data, 1) ; + printf("Command: 0x%02X ", readReg8(REG_COMMAND)) ; printf("Status: 0x%02X ", getStatus()) ; printf("Config: 0x%02X\n", getConfig()) ; }