User Guide

MPLAB
®
PICkit™ 4 User’s Guide
DS50002751C-page 38 2018 Microchip Technology Inc.
My computer went into power-down/hibernate mode, and now my debugger
won’t work. What happened?
When using the debugger for prolonged periods of time, and especially as a
debugger, be sure to disable the Hibernate mode in the Power Options Dialog
window of your computer’s operating system. Go to the Hibernate tab and clear or
uncheck the “Enable hibernation” check box. This will ensure that all
communication is maintained across all the USB subsystem components.
I set my 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).
When using a 16-bit device, an unexpected reset occurred. How do I deter-
mine 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.