English
Language : 

PIC32MX440F256H-80I Datasheet, PDF (355/646 Pages) Microchip Technology – 64/100-Pin General Purpose and USB 32-Bit Flash Microcontrollers
PIC32MX3XX/4XX
14.4 Timer Interrupts
A timer can generate an interrupt on a period match
event or a gate event, caused by the falling edge of the
external gate signal.
A timer sets its corresponding interrupt flag bit, TxIF,
whenever the timer event is generated. Refer to a
specific timer mode for details regarding these event
conditions. When a timer event is generated, the inter-
rupt flag bit is set within 1 PBCLK + 2 SYSCLK cycles.
If the timer interrupt enable bit is set, TxIE = 1, an
interrupt is generated.
The timer module is enabled as a source of interrupts
via the respective Timer Interrupt Enable bit, TxIE
(IECx<n>). The Timer Interrupt Flag, TxIF (IFSx<n>),
must be cleared in software.
The interrupt priority level bits and interrupt subpriority
level bits must be also be configured:
• TxIP<2:0> (IPCx<4:2>)
• TxIS<1:0> (IPCx<1:0)
Setting the timer’s interrupt priority level = 0 effectively
disables the timer’s ability to generate an interrupt.
In addition to enabling the timer interrupt, an Interrupt
Service Routine, ISR, is required. Example 14-7
through Example 14-9 show a partial code example of
an ISR.
EXAMPLE 14-7:
T2CON = 0x0;
16-BIT TIMER INTERRUPT AND PRIORITIES
// Stop Timer and clear control register,
// prescaler at 1:1,internal clock source
TMR2 = 0x0;
PR2 = 0xFFFF;
// Clear timer register
// Load period register
IPC2SET = 0x0000000C;
IPC2SET = 0x00000001;
// Set priority level=3
// Set subpriority level=1
// Could have also done this in single
// operation by assigning IPC2SET = 0x0000000D
IFS0CLR = 0x00000100; // Clear Timer interrupt status flag
IEC0SET = 0x00000100; // Enable Timer interrupts
T2CONSET = 0x8000;
// Start Timer
EXAMPLE 14-8: 32-BIT TIMER INTERRUPT AND PRIORITIES
T4CON = 0x0;
T5CON = 0x0;
T4CONSET = 0x0038;
// Stop 16-bit Timer4 and clear control register
// Stop 16-bit Timer5 and clear control register
// Enable 32-bit mode, prescaler at 1:8,
// internal clock source
TMR4= 0x0;
PR4 = 0xFFFFFFFF;
// Clear contents of the TMR4 and TMR5
// registers in one 32-bit load operation
// Load PR4 and PR5 registers with 32-bit value
// 0xFFFFFFFF in one 32-bit load operation
IPC5SET = 0x00000004;
IPC5SET = 0x00000001;
// Set priority level=1 and
// Set subpriority level=1
// Could have also done this in single
// operation by assigning IPC5SET = 0x00000005
IFS0CLR = 0x10000000; // Clear the Timer5 interrupt status flag
IEC0SET = 0x10000000; // Enable Timer5 interrupts
T4CONSET = 0x8000;
// Start Timer
© 2008 Microchip Technology Inc.
Preliminary
DS61143E-page 353