Frequently Asked Quesons (FAQ)
User Guide
© 2023 Microchip Technology Inc. and its subsidiaries
DS-50003529B - 65
7.2.2 Performing a Verify fails aer programming the device. Is this a programming issue?
If Run Main Project is selected, the device will automatically run immediately after
programming. Therefore, if your code changes the ash memory, verication could fail. To prevent
the code from running after programming, select Hold in Reset
.
7.2.3 During Nave Trace, I manually halted my program and now the last trace record has been
lost. What happened?
Due to manual Halts being asynchronous, the last piece of data may be dropped. Try running and
halting again. Alternatively, use a breakpoint to halt your code.
7.2.4 I set my 16-bit device peripheral to NOT freeze on halt, but it is suddenly freezing. What's
going on?
For dsPIC30F/33F and PIC24F/H devices, a reserved bit in the peripheral control register (usually
either bit 14 or 5) is used as a Freeze bit by the debugger. If you have performed a write to the entire
register, you may have overwritten this bit (the bit is user-accessible in Debug mode). To avoid this
problem, write only to the bits you wish to change for your application (BTS, BTC) instead of to the
entire register (MOV).
7.2.5 When using a 16-bit device, an unexpected Reset occurred. How do I determine what
caused it?
Some things to consider:
• To determine a Reset source, check the RCON register.
• Handle traps/interrupts in an Interrupt Service Routine (ISR). You should include trap.c style
code, i.e.,
void __attribute__((__interrupt__)) _OscillatorFail(void);
:
void __attribute__((__interrupt__)) _AltOscillatorFail(void);
:
void __attribute__((__interrupt__)) _OscillatorFail(void)
{
INTCON1bits.OSCFAIL = 0; //Clear the trap flag
while (1);
}
:
void __attribute__((__interrupt__)) _AltOscillatorFail(void)
{
INTCON1bits.OSCFAIL = 0;
while (1);
}
:
• Use ASSERTs. For example:
ASSERT
(IPL==7)