EasyManua.ls Logo

Motorola MPC823e - Page 490

Motorola MPC823e
1353 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Communication Processor Module
16-36 MPC823e REFERENCE MANUAL MOTOROLA
DSP
COMMUNICATION
16
PROCESSOR MODULE
16.3.3.5.1 DSP Programming Example (Core Only)
void tx_filter ()
{
S16 *coefr
S16 *samplr, *sampli
S16 *coefend;
S32 filtoutr, filtouti;
U8 subcount, sampleindex;
extern S16 mult(S16 p1, S16 p2); /* in-line invocation */
coefr=txfiltcoef_str;
coefend=txfiltcoef_end;
samplr=&txfiltdly[REAL][txfiltptr];
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); /* in-line invocation */
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();
*
*
}

Table of Contents