【正文】
*********** ** Main Function Program ***********************************************************************/ include include define pi void main(void) { int k=0。 int *px = (int*)0x3000。 // for ( 。 ) { InitC5402()。 for ( 。 ) { // for (j=0。 j++) { READAD50()。 x_ad = *px。 py = (int*)(0x3100)。 WRITEAD50()。 } } } Asm文件: .global _InitC5402 .global _OpenMcBSP .global _CloseMcBSP .global _READAD50 .global _WRITEAD50 .include _InitC5402: NOP LD 0, DP 。 software setting of DSP clock STM 0, CLKMD 。poll STATUS bit BC TstStatu1, ANEQ STM 0xF7ff, CLKMD 。 set C5402 DSP clock to 100MHz 。 2 wait cycle for IO space amp。 0 wait cycle for dataamp。 set wait states for bank switch: 。 consecutive prog/data read 。 ST0 at default setting 。 ST1 at default setting(note:INTX=1) 。 MC mode amp。 stop on– chip timer0 STM 0x0010, TCR1 。 Timer0 is used as main loop timer 。 timer0 rate=CPUCLK/1/(PRD+1) 。 if CPU at 100M/6250=16KHz ******* Initialize McBSP1 Registers ******* STM SPCR1, McBSP1_SPSA 。 McBSP1 recv = left– justify 。 register subaddr for SPCR2 。 McBSP1 Tx = FREE(clock stops 。 register subaddr of RCR1 STM 0040h, McBSP1_SPSD 。 register subaddr of RCR2 STM 0040h, McBSP1_SPSD 。 ret frame2 Dlength = 16bits STM XCR1, McBSP1_SPSA 。 set the same as recv STM XCR2, McBSP1_SPSA 。 set the same as recv STM PCR, McBSP1_SPSA 。 clk and frame from external (slave) 。 disable peripheral interrupts STM 0xFFFF, IFR 。 return to main NOP NOP ******* Waiting for McBSP0 RX Finished ******* IfRxRDY1: NOP STM SPCR1, McBSP1_SPSA 。 mask RRDY bit BC IfRxRDY1, AEQ 。 return NOP NOP ******* Waiting for McBSP0 TX Finished ******* IfTxRDY1: NOP