MC68HC(7)08KH12Rev. 1.1 Advance Information
Freescale Semiconductor 235
15.6.1 Port-F Keyboard Interrupt Functional Description
Writing to the KBFIE7–KBFIE0 bits in the keyboard interrupt enable
register independently enables or disables each port F pin as a keyboard
interrupt pin. Enabling a keyboard interrupt pin in port-F does not enable
its internal pullup device. Writing to the PFPE7–PFPE0 bits in the pull-up
enable register independently enables or disables each port F pin
pull-up device. A logic 0 applied to an enabled keyboard interrupt pin
latches a keyboard interrupt request.
A keyboard interrupt is latched when one or more keyboard pins goes
low after all were high. The MODEF bit in the keyboard status and
control register controls the triggering mode of the keyboard interrupt.
If the keyboard interrupt is edge-sensitive only, a falling edge on a
keyboard pin does not latch an interrupt request if another
keyboard pin is already low. To prevent losing an interrupt request
on one pin because another pin is still low, software can disable
the latter pin while it is low.
If the keyboard interrupt is falling edge- and low level-sensitive, an
interrupt request is present as long as any keyboard pin is low.
If the MODEF bit is set, the keyboard interrupt pins are both falling edge-
and low level-sensitive, and both of the following actions must occur to
clear a keyboard interrupt request:
Vector fetch or software clear — A vector fetch generates an
interrupt acknowledge signal to clear the interrupt request.
Software may generate the interrupt acknowledge signal by
writing a logic 1 to the ACKF bit in the keyboard status and control
register KBFSCR. The ACKF bit is useful in applications that poll
the keyboard interrupt pins and require software to clear the
keyboard interrupt request. Writing to the ACKF bit prior to leaving
an interrupt service routine can also prevent spurious interrupts
due to noise. Setting ACKF does not affect subsequent transitions
on the keyboard interrupt pins. A falling edge that occurs after
writing to the ACKF bit latches another interrupt request. If the
keyboard interrupt mask bit, IMASKF, is clear, the CPU loads the
program counter with the vector address at locations $FFE8 and
$FFE9.