Using a PIC16F88.
I'm using an "INT" interrupt handler to capture the frequency of a signal input on RB0. Then I calculate a percentage (say -7%) of that frequency. And I use the CCP1 module (running in compare mode), and a CCP1 interrupt handler, to output a corrected frequency on the RA6 pin. The routine is working beautifully.
So, now I want to get fancy. I want to monitor the input frequency, capture the highest frequency encountered over time (ie. a high water mark), and save it. That too is working beautifully.
Now the problem...
When I capture a new "high water mark", I want to record it to the PIC's embedded data EEPROM, so that it can be retrieved in the future. This does work. However, upon initiating the EEPROM write operation, I'm finding that my other interrupt service routines are briefly disrupted/suspended. Upon reviewing the data sheet for the 16F88 (specifically, section 3.4), I discover "... We strongly recommend that interrupts be disabled... " during the write operation. Darnit. That's a bummer.
Has anyone discovered a way to write to the embedded data EEPROM, without having to disable interrupts?