【正文】
*******************************/ include include define pi void main(void) { int k=0。 // for ( 。 for ( 。 j++) { READAD50()。 py = (int*)(0x3100)。 } } } Asm文件: .global _InitC5402 .global _OpenMcBSP .global _CloseMcBSP .global _READAD50 .global _WRITEAD50 .include _InitC5402: NOP LD 0, DP 。poll STATUS bit BC TstStatu1, ANEQ STM 0xF7ff, CLKMD 。 2 wait cycle for IO space amp。 set wait states for bank switch: 。 ST0 at default setting 。 MC mode amp。 Timer0 is used as main loop timer 。 if CPU at 100M/6250=16KHz ******* Initialize McBSP1 Registers ******* STM SPCR1, McBSP1_SPSA 。 register subaddr for SPCR2 。 register subaddr of RCR1 STM 0040h, McBSP1_SPSD 。 ret frame2 Dlength = 16bits STM XCR1, McBSP1_SPSA 。 set the same as recv STM PCR, McBSP1_SPSA 。 disable peripheral interrupts STM 0xFFFF, IFR 。 mask RRDY bit BC IfRxRDY1, AEQ 。 mask TRDY bit BC IfTxRDY1, AEQ 。 enable McBSP0 TX for DTMF out LDM McBSP1_SPSD,A OR 0x0001, A STLM A, McBSP1_SPSD LD 0h, DP 。 CALL IfTxRDY1 。NOP CALL IfTxRDY1 STM 0x0001, McBSP1_DXR1。write 00h to register 2 CALL IfTxRDY1 STM 0000h, McBSP1_DXR1 CALL IfTxRDY1 STM 0x0001, McBSP1_DXR1。write 00h to register 4 。 STM 0x0001, McBSP1_DXR1 。 CALL IfTxRDY1 。enable analog loopback RET NOP NOP ********************* _CloseMcBSP: STM SPCR1, McBSP1_SPSA 。mask the LSB stlm B, McBSP1_DXR1 。 extern void READAD50(void)。 } } D/A模塊: extern void InitC5402(void)。 /*********************************************************************** ** Main Function Program ***********************************************************************/ void main(void) { InitC5402