Interrupt arbitration, Interrupt processing, Interrupt control registers – National Instruments HPC167064 User Manual

Page 18: Servicing the interrupts, Reset, Timer overview

Advertising
background image

HPC167064 Interrupts

(Continued)

TABLE II Interrupts

Vector

Interrupt Source

Arbitration

Address

Ranking

FFFF FFFE

RESET

0

FFFD FFFC

Nonmaskable external on rising edge of I1 pin

1

FFFB FFFA

External interrupt on I2 pin

2

FFF9 FFF8

External interrupt on I3 pin

3

FFF7 FFF6

External interrupt on I4 pin

4

FFF5 FFF4

Overflow on internal timers

5

FFF3 FFF2

Internal on the UART transmit receive complete or external on EXUI

6

FFF1 FFF0

External interrupt on EI pin

7

Interrupt Arbitration

The HPC167064 contains arbitration logic to determine
which interrupt will be serviced first if two or more interrupts
occur simultaneously The arbitration ranking is given in Ta-
ble II The interrupt on RESET has the highest rank and is
serviced first

Interrupt Processing

Interrupts are serviced after the current instruction is com-
pleted except for the RESET which is serviced immediately
RESET and EXUI are level-LOW-sensitive interrupts and EI
is programmable for edge-(RISING or FALLING) or level-
(HIGH or LOW) sensitivity All other interrupts are edge-sen-
sitive NMI is positive-edge sensitive The external interrupts
on I2 I3 and I4 can be software selected to be rising or
falling edge External interrupt (EXUI) is shared with UART
interrupt This interrupt is level-low sensitive To select this
interrupt disable the ERI and ETI UART interrupt bits in the
ENUI register To select the UART interrupt leave this pin
floating or tie it high

Interrupt Control Registers

The HPC167064 allows the various interrupt sources and
conditions to be programmed This is done through the vari-
ous control registers A brief description of the different con-
trol registers is given below

INTERRUPT ENABLE REGISTER (ENIR)

RESET and the External Interrupt on I1 are non-maskable
interrupts The other interrupts can be individually enabled
or disabled Additionally a Global Interrupt Enable Bit in the
ENIR Register allows the Maskable interrupts to be collec-
tively enabled or disabled Thus in order for a particular
interrupt to request service both the individual enable bit
and the Global Interrupt bit (GIE) have to be set

INTERRUPT PENDING REGISTER (IRPD)

The IRPD register contains a bit allocated for each interrupt
vector The occurrence of specified interrupt trigger condi-
tions causes the appropriate bit to be set There is no indi-
cation of the order in which the interrupts have been re-
ceived The bits are set independently of the fact that the
interrupts may be disabled IRPD is a Read Write register
The bits corresponding to the maskable external interrupts
are normally cleared by the HPC167064 after servicing the
interrupts

For the interrupts from the on-board peripherals the user
has the responsibility of resetting the interrupt pending flags
through software

The NMI bit is read only and I2 I3 and I4 are designed as to
only allow a zero to be written to the pending bit (writing a
one has no affect) A LOAD IMMEDIATE instruction is to be
the only instruction used to clear a bit or bits in the IRPD
register This allows a mask to be used thus ensuring that
the other pending bits are not affected

INTERRUPT CONDITION REGISTER (IRCD)

Three bits of the register select the input polarity of the
external interrupt on I2 I3 and I4

Servicing the Interrupts

The Interrupt once acknowledged pushes the program
counter (PC) onto the stack thus incrementing the stack
pointer (SP) twice The Global Interrupt Enable bit (GIE) is
copied into the CGIE bit of the PSW register it is then reset
thus disabling further interrupts The program counter is
loaded with the contents of the memory at the vector ad-
dress and the processor resumes operation at this point At
the end of the interrupt service routine the user does a
RETI instruction to pop the stack and re-enable interrupts if
the CGIE bit is set or RET to just pop the stack if the CGIE
bit is clear and then returns to the main program The GIE
bit can be set in the interrupt service routine to nest inter-
rupts if desired

Figure 18

shows the Interrupt Enable Logic

RESET

The RESET input initializes the processor and sets Ports A
and B in the TRI-STATE condition and Port P in the LOW
state RESET is an active-low Schmitt trigger input The
processor vectors to FFFF FFFE and resumes operation at
the address contained at that memory location (which must
correspond to an on board location) The Reset vector ad-
dress must be between C000 and FFFF when emulating the
HPC16064 and between E000 and FFFF when emulating
the HPC16003

Timer Overview

The HPC167064 contains a powerful set of flexible timers
enabling the HPC167064 to perform extensive timer func-
tions not usually associated with microcontrollers

The

HPC167064 contains nine 16-bit timers Timer T0 is a
free-running

timer

counting

up

at

a

fixed

CKI 16

18

Advertising
This manual is related to the following products: