' P, `/ M3 f/ {+ L# D mcasp->regs->XGBLCTL |= GBLCTL_XSRCLR_ON; ! R5 {/ J! Y. u/ H% F% [ while ( ( mcasp->regs->XGBLCTL & GBLCTL_XSRCLR_ON ) != GBLCTL_XSRCLR_ON ); 4 D2 L! w3 }( u mcasp->regs->RGBLCTL |= GBLCTL_RSRCLR_ON; / U; _- @$ w+ @$ I8 Y5 k while ( ( mcasp->regs->RGBLCTL & GBLCTL_RSRCLR_ON ) != GBLCTL_RSRCLR_ON );* G3 w) H" A2 _/ Q' w W; u4 a, o* r
) O7 M4 Q8 [: Z8 r8 x! W /* Write a 0, so that no underrun occurs after releasing the state machine */ 9 E% s5 J D' i5 I mcasp->regs->XBUF5 = 0;7 E% d1 v* d; D, m6 H# K6 a0 a" m
mcasp->regs->RBUF0 = 0;8 S9 a+ d0 l% P6 f
' F" ~( _2 d8 v8 [. i8 s/ K mcasp->regs->XGBLCTL |= GBLCTL_XSMRST_ON; 5 D" Z! B' ~2 |% O
while ( ( mcasp->regs->XGBLCTL & GBLCTL_XSMRST_ON ) != GBLCTL_XSMRST_ON ); # a }% L x, h I& K0 e% {9 x mcasp->regs->RGBLCTL |= GBLCTL_RSMRST_ON; . p& s5 G N3 r$ o
while ( ( mcasp->regs->RGBLCTL & GBLCTL_RSMRST_ON ) != GBLCTL_RSMRST_ON ); 5 @9 G6 `" h" l+ J; C8 ~ % z2 d' J/ x6 s6 e mcasp->regs->XGBLCTL |= GBLCTL_XFRST_ON; 4 E e; t& K i1 p' {1 x& l
while ( ( mcasp->regs->XGBLCTL & GBLCTL_XFRST_ON ) != GBLCTL_XFRST_ON ); - j, h# N+ _" w' S" P mcasp->regs->RGBLCTL |= GBLCTL_RFRST_ON; ; Y0 f ~* t. t" W$ F while ( ( mcasp->regs->RGBLCTL & GBLCTL_RFRST_ON ) != GBLCTL_RFRST_ON ); 6 |) t: T- q4 |9 }. W! \6 W' }& N6 I5 g3 _
CSR = 0x0000;8 ~, X: ~1 \0 {- w$ M D
INTC_INTMUX1 = 0x3d; ' e4 ^( \- c% e ^! i& X ISTP = (unsigned int)vectors; ; q" i4 x1 b! S7 M ICR = 0xFFF0; $ z0 s' M2 n9 s, _ IER |= 0x12; $ f, y) N7 x4 i3 t9 @ CSR |= 0x01; ) M( v8 N; @$ W8 {8 ]& T/ E 6 r- T- }. l2 h# c; ]! k; A# ]; e5 w& d8 K. {6 c" \; ?
& s- X- u. u; r `4 l还有就是两个输入输出函数: ) P/ w8 t( e8 y) [: cvoid output_sample(Int32 out_data) ( y2 @7 ?7 V& G9 g{+ ]3 O4 ~, x# c
AIC31_data.uint = out_data; $ t. j% D! C! b( N% `
MCASP1_XBUF5_32BIT = AIC31_data.uint;' u+ F c8 e8 _
}4 I8 [! W2 i/ T, z+ H8 J' a
' |# u! O) }7 ] @4 |! ]
Int32 input_sample(void)* `# w. p/ D4 T* a8 R: @( }
{ " s( ?) P/ s7 h' ~0 o8 Q5 L. X AIC31_data.uint = MCASP1_RBUF0_32BIT; 2 h3 {- ~* o1 k# U& X* J return (AIC31_data.uint);% X* Q3 {. p. R. M: N% E9 \1 B
} ) P5 k) @ c/ w/ y5 g/ @4 H & W( `0 E; ?7 M; S m3 q1 |5 R作者: human 时间: 2016-3-16 11:55
可以参看创龙提供的例程:AUDIO_LINE_OUT_INTR——Line Out 音频输出(中断方式)