Motorola MPC860 PowerQUICC User Manual page 945

Table of Contents

Advertisement

sampli=&txfiltdly[IMAG][txfiltptr];
sampleindex=0;
while (coefr<coefend) {
filtoutr=filtouti=0;
subcount=0;
while (subcount<TXSUBFILTLEN) {
filtoutr+=mult(*coefr, *samplr--);
filtouti+=mult(*coefr++, *sampli--);
}
samplr=&txfiltdly[REAL][txfiltptr];
sampli=&txfiltdly[IMAG][txfiltptr];
modbuff[REAL][sampleindex]= filtoutr ;
modbuff[IMAG][sampleindex++]= filtouti;
}
}
void modulator ()
{
U8 i;
S32 termrnd;
extern S16 mult(S16 p1, S16 p2);
i=0;
while (i<SAMPLE_PER_T) {
sigout[i]= mult(sn1800[REAL][cosindx], modbuf[REAL][i]) -
mult(sn1800[IMAG][cosindx], modbuf[IMAG][i]);
cosindx++;
if (cosindx==SIN1800TBL_LEN)cosindx=0;
i++;
}
void main ()
{
*
*
tx_filter();
modulator();
*
*
}
36.18.2 Tx Filter Example (Core and CPM)
Implementing the Þlter using the CPM functions, the user software builds a static FD chain
of two functionsÑan FIR and a MOD. The core activates the CPM to execute the chain
with a single write to the CP command registerÑ
completion using an interrupt.
The performance load on the core from executing the Þlter software is negligible. The
performance load on the CPM is based on the functions called, the number of clocks
required to perform those functions and the transmission symbol rate. Using the CPM, this
MOTOROLA
Part V. The Communications Processor Module
/* in-line invocation */
Chapter 36. Digital Signal Processing
. The CPM then signals
START DSP
36-31

Advertisement

Table of Contents
loading

Table of Contents