beautypg.com

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

Page 51

background image

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