Serial interrupt, Figure 5-9: xfer_busy isr – Maxim Integrated 71M6513H Power Meter IC Family Software User Manual
Page 51

71M651x Software User’s Guide
CE2 =
(CE2 & ~CHOP_EN) | chop
XFER_busy_isr()
IEX_CE_BUSY = 0
EX_CE_BUSY = 1
Proper CHOP handling
Toggle CHOP
Enable Interrupts
ce_first_pass = 0?
EA = 0
chop ^= CHOP_EN
EA=1
alternate mux cycle?
Disable interrupts
meter_alt = 1?
mux(alt)
N
PulseWSource >
INTERNAL?
apulsew_written = 0?
Status |= PULSEW_ERR
copy X --> CE
pSrc = (U08x *) &ApulseW
pDst = (U08x *) &apulsew
apulsew_written = 0
apulsew_written = 2?
apulsew_written = 0
N
N
PulserSource >
INTERNAL?
apulser_written = 0?
Status |= PULSER_ERR
copy X --> CE
pSrc = (U08x *) &Apulser
pDst = (U08x *) &apulseR
apulser_written = 0
apulser_written = 2?
apulser_written = 0
N
N
copy CE --> X
pSrc = (U08x *) &CE.Outputs
pDst = (U08x *) &Outputs
len= sizeof (CE.Outputs)
/ sizeof (S32)
ce_first_pass--
N
NEXT_XX
len |=0?
--len
outputs_ready = TRUE
xfer_update = TRUE
Apply_Creep_Threshold ()
ifndef 6511
xfer_busy_beat ==1
DIO_1 ^= 1
END
N
N
Figure 5-9: XFER_BUSY ISR
SERIAL Interrupt
ES0_isr is the ISR servicing UART 0. In this ISR, the UART data is sent and received along using flow control, if
enabled. Parity and other serial controls are managed in this ISR. The alternative serial port, UART 1 uses an ISR
with similar code structure.
Revision 2.4
TERIDIAN Proprietary
51 of 137
© Copyright 2005-2006 TERIDIAN Semiconductor Corporation