|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請大家?guī)臀铱纯催@個程序錯在哪里 |
| 作者:gongdl1204 欄目:DSP技術(shù) |
#include <stdio.h> #define IMR (volatile unsigned int *) 0x0000 #define DMPREC (volatile unsigned int *) 0x0054 #define SWWSR (volatile unsigned int *) 0x0028 #define BSCR (volatile unsigned int *) 0x0029 #define ST0 (volatile unsigned int *) 0x0006 #define ST1 (volatile unsigned int *) 0x0007 #define PMST (volatile unsigned int *) 0x001D #define IFR (volatile unsigned int *) 0x0001 #define DRR11 (volatile unsigned int *) 0x0041 #define DXR11 (volatile unsigned int *) 0x0043 #define SPSA1 (volatile unsigned int *) 0x0048 //McBSP1 #define SPSD1 (volatile unsigned int *) 0x0049 //sub_address register #define SPCR11 0x0000 #define SPCR21 0x0001 #define RCR11 0x0002 #define RCR21 0x0003 #define XCR11 0x0004 #define XCR21 0x0005 #define PCR1 0x000E void inline disable(void); void inline enable(void); void interrupt essp_rx(void); void init_core(void); void init_bsp(void); void init_codec(void); main() { init_core(); init_codec(); enable(); while(1); } void init_core() { /*設(shè)置外部存儲器的等待周期為0,I/O等待周期為2*/ *SWWSR=0x2000; *BSCR=0x0000; *ST0=0x1800; *ST1=0x2900; /*設(shè)置中斷向量表的首地址為0X0080*/ *PMST=0x00A0; *IMR=0x0000; *IFR=0xffff;/*有的中斷標(biāo)志*/ } void init_bsp() { *SPSA1=SPCR11; *SPSD1=0x0020; /*發(fā)送中斷由幀同步信號產(chǎn)生,McBSP0 Tx=FREE*/ *SPSA1=SPCR21; *SPSD1=0x0201; *SPSA1=RCR11; *SPSD1=0x0040; *SPSA1=RCR21; *SPSD1=0x0000; *SPSA1=XCR11; *SPSD1=0x0040; *SPSA1=XCR21; *SPSD1=0x0000; *SPSA1=PCR1; *SPSD1=0x000C; asm("NOP"); asm("NOP"); } /*初始化TLC320AD50*/ void init_codec() { int i; disable(); init_bsp(); /*初始化MBSP0*/ *DMPREC=*DMPREC&0xFF3F; /*設(shè)置中斷為串口發(fā)出*/ *DXR11=0x0000; *SPSA1=SPCR11; /*接收數(shù)據(jù)*/ *SPSD1=0x0001; *SPSA1=SPCR21; /*發(fā)送數(shù)據(jù)*/ *SPSD1=0x0001; *DXR11=0x0003; /*用軟件方式配置AD50寄存器*/ *SPSA1=SPCR21; while(!(*SPSD1&0x0002)); *DXR11=0x0181; /*復(fù)位AD50*/ while(!(*SPSD1&0x0002)); for(i=0;i<4000;i++); *DXR11=0x0003; while(!(*SPSD1&0x0002)); *DXR11=0x0101; while(!(*SPSD1&0x0002)); *DXR11=0x0003; while(!(*SPSD1&0x0002)); *DXR11=0x0210; while(!(*SPSD1&0x0002)); *DXR11=0x0003; while(!(*SPSD1&0x0002)); *DXR11=0x0300; while(!(*SPSD1&0x0002)); *DXR11=0x0003; while(!(*SPSD1&0x0002)); *DXR11=0x0450; while(!(*SPSD1&0x0002)); asm("NOP"); asm("NOP"); *IMR=0x0400; *IFR=0x0400; enable(); *DXR11=*DRR11; } void inline disable() { asm("SSBX INTM"); } void inline enable() { asm("RSBX INTM"); } void interrupt essp_rx() { int sample_in; /*讀入采樣數(shù)據(jù)*/ sample_in=*DRR11; /*傳回AD50*/ *DXR11=sample_in; } |
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |