Datasheet
PIC24F16KL402 FAMILY
DS30001037C-page 114 2011-2013 Microchip Technology Inc.
11.3 Input Change Notification
The Input Change Notification (ICN) function of the I/O
ports allows the PIC24F16KL402 family of devices to
generate interrupt requests to the processor in response
to a Change-of-State (COS) on selected input pins. This
feature is capable of detecting input Change-of-States,
even in Sleep mode, when the clocks are disabled.
Depending on the device pin count, there are up to
23 external signals that may be selected (enabled) for
generating an interrupt request on a Change-of-State.
There are six control registers associated with the
Change Notification (CN) module. The CNEN1 and
CNEN2 registers contain the interrupt enable control
bits for each of the CN input pins. Setting any of these
bits enables a CN interrupt for the corresponding pins.
Each CN pin also has a weak pull-up/pull-down
connected to it. The pull-ups act as a current source
that is connected to the pin. The pull-downs act as a
current sink to eliminate the need for external resistors
when push button or keypad devices are connected.
On any pin, only the pull-up resistor or the pull-down
resistor should be enabled, but not both of them. If the
push button or the keypad is connected to V
DD, enable
the pull-down, or if they are connected to V
SS, enable
the pull-up resistors. The pull-ups are enabled sepa-
rately using the CNPU1 and CNPU2 registers, which
contain the control bits for each of the CN pins.
Setting any of the control bits enables the weak
pull-ups for the corresponding pins. The pull-downs are
enabled separately, using the CNPD1 and CNPD2
registers, which contain the control bits for each of the
CN pins. Setting any of the control bits enables the
weak pull-downs for the corresponding pins.
When the internal pull-up is selected, the pin uses V
DD
as the pull-up source voltage. When the internal
pull-down is selected, the pins are pulled down to V
SS
by an internal resistor. Make sure that there is no exter-
nal pull-up source/pull-down sink when the internal
pull-ups/pull-downs are enabled.
EXAMPLE 11-1: PORT WRITE/READ EXAMPLE (ASSEMBLY LANGUAGE)
EXAMPLE 11-2: PORT WRITE/READ EXAMPLE (C LANGUAGE)
Note: Pull-ups and pull-downs on Change Notifi-
cation pins should always be disabled
whenever the port pin is configured as a
digital output.
MOV #0xFF00, W0 ; Configure PORTB<15:8> as inputs and PORTB<7:0> as outputs
MOV W0, TRISB
MOV #0x00FF, W0 ; Enable PORTB<15:8> digital input buffers
MOV W0, ANSB
NOP ; Delay 1 cycle
BTSS PORTB, #13 ; Next Instruction
TRISB = 0xFF00; // Configure PORTB<15:8> as inputs and PORTB<7:0> as outputs
ANSB = 0x00FF; // Enable PORTB<15:8> digital input buffers
NOP(); // Delay 1 cycle
if(PORTBbits.RB13 == 1) // execute following code if PORTB pin 13 is set.
{
}