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

📄 pga2311.c

📁 数字对数电位器PGA2311的驱动程序
💻 C
字号:
#include <pga2311.h>

void pga_send(unsigned char buff_left,unsigned char buff_right)
{
	pga_sk=0;
	pga_cs=0;
	pga_cs=0;
	pga_cs=0;
	pga_cs=0;
	pga_cs=0;
	for(i=0;i<8;i++)
	{
		if(buff_right&0x80)
			pga_di=1;
		else
			pga_di=0;
		buff_right=buff_right<<1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=0;
	}
	for(i=0;i<8;i++)
	{
		if(buff_left&0x80)
			pga_di=1;
		else
			pga_di=0;
		buff_left=buff_left<<1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=0;
	}
	pga_cs=1;
	pga_di=1;
}

/*
void pga_send2(unsigned char buff_l,unsigned char buff_r)
{
	//第一片增益范围buff_left1			20-192(-86~0DB)
	//第二片增益范围buff_left2			20-240(-86~24DB)
	//单通道增益数据buff_l				0-260(-10~120)
	//单通道校准调整pga_offset_left		0-130
	//调整数据							41
	//buff_left1 + buff_left2 = buff_l*2 + 41 + pga_offset_left

	unsigned char i;
	unsigned char buff_left1;
	unsigned char buff_left2;
	unsigned char buff_right1;
	unsigned char buff_right2;
	unsigned int ii;

	//左声道
	ii=(unsigned int)buff_l*2+41+(unsigned int)pga_offset_left;
	if(ii<120)
	{
		buff_left1=20;
		buff_left2=ii-buff_left1;
	}
	else
	{
		if(ii<215)
		{
			buff_left1=96;
			buff_left2=ii-buff_left1;
		}
		else
		{
			buff_left1=192;
			buff_left2=ii-buff_left1;
		}
	}
	//右声道
	ii=(unsigned int)buff_r*2+41+(unsigned int)pga_offset_right;
	if(ii<120)
	{
		buff_right1=20;
		buff_right2=ii-buff_right1;
	}
	else
	{
		if(ii<215)
		{
			buff_right1=96;
			buff_right2=ii-buff_right1;
		}
		else
		{
			buff_right1=192;
			buff_right2=ii-buff_right1;
		}
	}
	
	pga_sk=0;
	pga_cs=0;
	pga_cs=0;
	pga_cs=0;
	pga_cs=0;
	pga_cs=0;
	for(i=0;i<8;i++)
	{
		if(buff_right2&0x80)
			pga_di=1;
		else
			pga_di=0;
		buff_right2=buff_right2<<1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=0;
	}
	for(i=0;i<8;i++)
	{
		if(buff_right1&0x80)
			pga_di=1;
		else
			pga_di=0;
		buff_right1=buff_right1<<1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=0;
	}
	for(i=0;i<8;i++)
	{
		if(buff_left2&0x80)
			pga_di=1;
		else
			pga_di=0;
		buff_left2=buff_left2<<1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=0;
	}
	for(i=0;i<8;i++)
	{
		if(buff_left1&0x80)
			pga_di=1;
		else
			pga_di=0;
		buff_left1=buff_left1<<1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=1;
		pga_sk=0;
	}
	pga_cs=1;
	pga_di=1;
}
*/

⌨️ 快捷键说明

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