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

📄 sport0.c

📁 定点十六位的adsp218x系列的fft、fir算法。对刚刚入门的dsp学习有很大的帮助。
💻 C
字号:
#include "talkthrough.h"

int iCodecRegs[SIZE_OF_CODEC_REGS] =//存放控制字的数组
{	       //用表达式形式表示控制字的数值
//格式:设备及寄存器地址|编程写模式|寄存器的值												
			CONTROL_B_1	| CONTROL | 0x0F,//CODEC2的B寄存器数值           
			CONTROL_B_0	| CONTROL | 0x0F,//CODEC1的B寄存器数值              
//									   |
//该位置的HEX数	 					   +----->C  D	E	F 
//对应的AD73322L的采样率(KHz)                 8  16	32	64
			CONTROL_C_1	| CONTROL | 0x79,
			CONTROL_C_0	| CONTROL | 0x79,
			CONTROL_D_1	| CONTROL | 0x20,
			CONTROL_D_0	| CONTROL | 0x20,
//                                    ||			
//该位置的HEX数						  |+----> 0  1	2	3	4	5	6	7 
//对应的AD73322L的输入增益(dB)        |	      0  6 	12	18	20	26	32	38	
//该位置的HEX数						  +-----> 0  1	2	3	4	5	6	7 
//对应的AD73322L的输出增益(dB)				  6  3  0  -3  -6  -9  -12  -15
			CONTROL_E_1	| CONTROL | 0x00,
			CONTROL_E_0	| CONTROL | 0x00,
			CONTROL_F_1	| CONTROL | 0x10,
			CONTROL_F_0	| CONTROL | 0x10,
			CONTROL_G_1	| CONTROL | 0xFF,
			CONTROL_G_0	| CONTROL | 0xFF,
			CONTROL_H_1	| CONTROL | 0xFF,
			CONTROL_H_0	| CONTROL | 0xFF,
			CONTROL_A_1	| CONTROL | 0x11,//注意:必须最后才能初始化寄存器A,这是因为
			CONTROL_A_0	| CONTROL | 0x11//最低位置1后,CODEC将过渡到数据模式
};
int iTxIsrCounter, iCodecInitFinished;//发送中断发生次数,CODEC初始化完成标志
/****************初始化SPORT0程序****************/
void InitSport0(void)
{
	int *pSys_Ctrl_Reg = &(* (int *) Sys_Ctrl_Reg);// 将地址值强制转换为指针类型
	int *pSport0_Autobuf_Ctrl = &(* (int *) Sport0_Autobuf_Ctrl);
	int *pSport0_Ctrl_Reg = &(* (int *) Sport0_Ctrl_Reg);
	int temp;
	
	temp=*pSys_Ctrl_Reg;              
	*pSys_Ctrl_Reg = temp&(0xEFFF);	//停止SPORT0工作					
    *pSport0_Autobuf_Ctrl = 0x0000;	//禁用SPORT0的autobuffering功能
    *pSport0_Ctrl_Reg = 0x2a0f;//设置SPORT0工作模式
    temp=*pSys_Ctrl_Reg; 
	*pSys_Ctrl_Reg=temp|(0x1000);//启动SPORT0工作	
}
/****************初始化CODEC程序****************/
void InitCodec(void)//完成对Codec的采样率和增益等初始化
{   
    
  	
	sport_write(SPORT_0, iCodecRegs[0]);// 启动串口发送
	while(!iCodecInitFinished);// 检查初始化完成标志,如果没有完成一直等待

	sysreg_bit_clr(sysreg_IMASK, 0x0040);// 屏蔽发送中断
	interrupt(SIGSPORT0RECV, Sport0RxIsr);// 关联SPORT0接收中断和中断服务程序
}

⌨️ 快捷键说明

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