I'm trying to use the adxl362 to wakeup on an event, take data for a specified amount of time and the return to sleep. For the most part this works but I get an unexpected activity interrupt immediately upon writing the power control register.
The value being written to the register:
|//Set the power control register|
//Set the reserved bit to the default state
|adxl362ControlRegisters.powerCtl.bit.extClk||=||0;||//Disables external clock|
|adxl362ControlRegisters.powerCtl.bit.lowNoise||=||0;||//Sets the appropriate noise level|
|adxl362ControlRegisters.powerCtl.bit.wakeUp||=||1;||//1 = Wakeup on event, 0 for measurement mode|
|adxl362ControlRegisters.powerCtl.bit.measure||=||2;||//Set the system to measurement mode|
If I read the status register immediately after writing this register without a delay, the register doesn't clear and the interrupt is generated anyway. I can work around this but I don't think I should have to.
What would cause the activity interrupt to be generated immediately upon writing the power control register?
Do I need a delay after writing the registers to allow things to settle before clearing the status registers?