Thanks for pointing me to the other thread. I feel like I covered the issues described there. For example, here is how I do my flash writes:
void HandleFlashWrite(){
byte bErr;
if((gbWriteFlash==1)&&(gbNumberOfFlashBytes<37)){
__DI(); // Disable interrupts
bErr = IFsh1_SetBlockFlash(&gbFlashData[0],gwFlashAddress, gbNumberOfFlashBytes);
gbWriteFlash = 0;
__EI(); // Enable interrupts
}
}
However, I still end up with my code hung every so often. Is there more than just disabling interrupts during flash writing that I need to take care of?
Thanks,
Mike