⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcbspedma_tst.c.bak

📁 使用DSP的MCBSP与EDMA连接ADC和DAC,进行信号的采样与重建
💻 BAK
字号:
#include "config2cfg.h"
#define SIZE 16
#define PING_STATE 0
#define PONG_STATE 1 

int g_swd_pingData[SIZE], g_swd_pongData[SIZE];
int SinFuncData[20] = {  -1 , -333 , -629 , -858,  -993 ,-1021 ,  -938 , -754 , -488 , -169,  168 , 487 ,
						 753 , 937 ,1020 , 992   ,  857 ,   628,   332,   0	 };  
int g_swa_MatlabSinDataInput[100] = {0  , -634 ,  -1266  , -1893  , -2511  , -3120  , -3717,
				   	-4298  ,-4862  , -5406  , -5929  , -6428  , -6901 ,  -7346,
				   	-7761   ,-8146  , -8497 ,  -8815  , -9096   ,-9341  , -9549,
				   	-9718  , -9848  , -9938  , -9989  , -9999  , -9969  , -9898,
				   	-9788,   -9638 ,  -9450  , -9224  , -8960 ,  -8660  , -8326,
				   	-7958 ,  -7557 ,  -7127 ,  -6668 ,  -6182 ,  -5671 ,  -5137,
				   	-4582 ,  -4009 ,  -3420,   -2817 ,  -2203 ,  -1580 ,  -951,
				   	-317 ,   317   , 951  ,  1580 ,   2203,    2817  ,  3420,
				   	4009 ,   4582  ,  5137 ,   5671 ,   6182 ,   6668  ,  7127,
				   	7557  ,  7958   , 8326 ,   8660 ,   8960  ,  9224  ,  9450,
				   	9638 ,   9788 ,   9898 ,  9969  ,  9999  ,  9989   , 9938,
				   	9848 ,   9718  ,  9549 ,   9341  ,  9096  ,  8815 ,   8497,
				   	8146 ,   7761 ,   7346  ,  6901  ,  6428 ,   5929 ,   5406,
				   	4862 ,   4298  ,  3717  ,  3120 ,   2511  ,  1893 ,   1266,
				   	634 ,   0};
int g_sw_MatsinDataCnt = 0;
							   
void main(void) 
{     
	IRQ_clear(IRQ_EVT_EDMAINT);	
	IRQ_enable(IRQ_EVT_EDMAINT);                                                            
     
   	EDMA_intClear(13); 
   	EDMA_intEnable(13); 
   
	MCBSP_start ( hMcbsp0, MCBSP_XMIT_START | MCBSP_RCV_START | MCBSP_SRGR_START 
   				| MCBSP_SRGR_FRAMESYNC, 0x8000);
	
}

#define DACBUFFSIZE 1024
unsigned short g_uhwa_AdcSmplBuff[DACBUFFSIZE];  
unsigned int g_uw_AdcSmplCnt = 0;

void DAC_ISR(void)
{	
	g_uhwa_AdcSmplBuff[g_uw_AdcSmplCnt++] =  g_swa_MatlabSinDataInput[g_sw_MatsinDataCnt++] ;
 	g_sw_MatsinDataCnt &= 99;
 	g_uw_AdcSmplCnt &= 1023; 
}
/*
void Edma_ISR(void)
{	
	static unsigned int u_sc_PingPongFlg = PING_STATE;
  	int i; 
  	
  	EDMA_intClear(13);
 	LOG_printf(&trace, "Enter Edma ISR");
  
  	u_sc_PingPongFlg = (u_sc_PingPongFlg == PING_STATE ) ? PONG_STATE : PING_STATE; 	
 	
 	if(u_sc_PingPongFlg == PING_STATE)
 	{
 		for ( i = 0 ; i < SIZE ; i++)
 		{
 			g_swd_TxpingData[i] = (g_swd_RxpongData[i])<<2;
 			g_uhwa_AdcSmplBuff[g_uw_AdcSmplCnt++] =  g_swd_RxpongData[i] ;
 			g_uw_AdcSmplCnt &= 1023; 
		}
   		LOG_printf(&trace, "Copy From Ping Buff"); 	
 	}
 	else
 	{
 		for(i=0;i<SIZE;i++ )
 		{
 			g_swd_TxpongData[i] = (g_swd_RxpingData[i])<<2;
 			g_uhwa_AdcSmplBuff[g_uw_AdcSmplCnt++] =  g_swd_RxpingData[i] ;
 			g_uw_AdcSmplCnt &= 1023; 	 	
   		}
   		LOG_printf(&trace, "Copy From Pong Buff"); 	
 	}
}
*/
/*
void ADC_ISR(void)
{
  	for ( i = 0 ; i < 20 ; i++ )
		{  	
		g_uhwa_AdcSmplBuff[g_uw_AdcSmplCnt++] =  SinFuncData[i] ;
 	 	g_uw_AdcSmplCnt &= 1023; 
		}
	}
*/
/*void Edma_ISR(void)
{	
	static unsigned int u_sc_PingPongFlg = PING_STATE;
  	int i; 
  	
  	EDMA_intClear(13);
 	LOG_printf(&trace, "Enter Edma ISR");
  
  	u_sc_PingPongFlg = (u_sc_PingPongFlg == PING_STATE ) ? PONG_STATE : PING_STATE; 	
 	
 	if(u_sc_PingPongFlg == PING_STATE)
 	{
 		for ( i = 0 ; i < SIZE ; i++)
 		{
 			g_uhwa_AdcSmplBuff[g_uw_AdcSmplCnt++] =  g_swd_pongData[i] ;
 			
 			g_uw_AdcSmplCnt &= 1023; 
		}
   		LOG_printf(&trace, "Copy From Ping Buff"); 	
 	}
 	else
 	{
 		for(i=0;i<SIZE;i++ )
 		{
 			g_uhwa_AdcSmplBuff[g_uw_AdcSmplCnt++] =  g_swd_pingData[i] ;
 			g_uw_AdcSmplCnt &= 1023; 	 	
   		}
   		LOG_printf(&trace, "Copy From Pong Buff"); 	
 	}
}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -