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

📄 max262.c

📁 程控滤波器max262模块驱动
💻 C
字号:
#include"max262.h"

void GiveData(unsigned char address,unsigned char databit)
{
	unsigned char i;
	unsigned char pin[4];
	
	//address的低四位赋给对应引脚,顺序对应
	for(i=0;i<4;i++)
	{
		pin[i]=(bit)(address&0x01);	
		address>>=1;
	}
	max262a0=(bit)pin[0];
	max262a1=(bit)pin[1];
	max262a2=(bit)pin[2];
	max262a3=(bit)pin[3];
	
	//databit低两位赋给对应引脚,注意顺序反着
	max262d0=(bit)(databit&0x02);
	max262d1=(bit)(databit&0x01);
}
//参数说明ab=0选A;ab=1选B
void SetMax262(long clkab,unsigned char mode, long freq, unsigned char q, unsigned char ab)
{
	unsigned char i,a,address,databit,f0;
	unsigned int alldata=0;
	
	mode-=1;	//将1 2 3 4格式转化成芯片输入格式
	
	//freq 转换
	if(mode==1)f0=((unsigned char)((clkab*0.90031631615711)/(float)freq)-26);//模式2情况
		else f0=((unsigned char)((clkab*0.6366197724)/(float)freq)-26);
	//DispInt(0,5,f0);

	//装载mode
	alldata+=(unsigned int)((bit)(mode&0x01));
	alldata<<=1;
	alldata+=(unsigned int)((bit)(mode&0x02));
	
	//装载f0
	for(i=0;i<6;i++)
	{
		alldata<<=1;
		alldata+=(unsigned int)(f0&0x01);
		f0>>=1;
	}

	//装载q
	for(i=0;i<7;i++)
	{
		alldata<<=1;
		alldata+=(unsigned int)(q&0x01);
		q>>=1;
	}
	
	alldata<<=1;//此时16位开始为M0 M1 F0 F1 F2 F3...Q4 Q5 Q6 0 (第1位为0)

	address=0;
	if(ab==1)a=8;else a=0;
	max262wr=1;
	for(address=a; address<(8+a); address++)	
	{
		max262wr=1;
		databit<<=1;
		databit+=(unsigned char)((bit)(alldata&0x8000));
		alldata<<=1;
		databit<<=1;
		databit+=(unsigned char)((bit)(alldata&0x8000));
		GiveData(address,databit);
		max262wr=0;
		alldata<<=1;
		max262wr=1;
	}
	max262wr=1;
}

//测试程序
/*
main()
{
	unsigned long fre,temp=500;
	unsigned char key;

	InitLcd ();													//初始化液晶
	ClearScr();//清屏
	while(1)
	{
		temp=InfScanPrint(3,6);
		do
		{
			key=InfKey();
			if(key==UP)temp+=10;
				else if(key==DOWN)temp-=10;
					else if(key==LEFT)temp++;
						else if(key==RIGHT)temp--;
							else if(key==BACK)break;
			ClearScr();	 
			DispDot(1,6,temp,1);
			
			fre=temp*100;
			SetMax262(3579545,1,fre,110,0);	//高通
			delay_50ms(3);
		}
		while(1);
		delay_50ms(6);
	}
}
*/

⌨️ 快捷键说明

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