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

📄 main.c

📁 以SPCE061A单片机为核心
💻 C
📖 第 1 页 / 共 2 页
字号:
				INPUT_NUM[INPUT_NUM_ID]=1+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+1;	
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x22 :   //5
				INPUT_NUM[INPUT_NUM_ID]=2+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+2;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x42 :   //6
				INPUT_NUM[INPUT_NUM_ID]=3+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+3;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
			//	case 0x82 :   //7
			//	break;
				case 0x14 :   //8
				INPUT_NUM[INPUT_NUM_ID]=4+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+4;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x24 :   //9  
				INPUT_NUM[INPUT_NUM_ID]=5+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+5;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x44 :   //10
				INPUT_NUM[INPUT_NUM_ID]=6+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+6;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x18 :   //9
				INPUT_NUM[INPUT_NUM_ID]=7+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+7;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x28 :   //9
				INPUT_NUM[INPUT_NUM_ID]=8+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+8;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x48 :   //9
				INPUT_NUM[INPUT_NUM_ID]=9+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+9;
				G_ICO_X+=8;	
				INPUT_NUM_ID++;
				break;
				case 0x88 :   //9
				break;
				case 0x82:
					MY_Event.Bit.CANNEL=1;
				break;
				default:
				break;
			}
			if(NOW_SET_FREG!=old_SET_FREG)
			{
				for(INPUT_ii=0;INPUT_ii<INPUT_NUM_ID;INPUT_ii++)
				{
					Watchdog_Clear = 0x0001;
					if(INPUT_NUM[INPUT_ii]>='0'&&INPUT_NUM[INPUT_ii]<='9')
					{
						LCD501_PutChar(16+INPUT_ii*8,32,INPUT_NUM[INPUT_ii]);
						LCD501_PutString(93,32,"HZ"); 
					}
				}
				old_SET_FREG=NOW_SET_FREG;
			}
		}
		if(MY_Event.Bit.CANNEL)
		{
			MY_Event.Bit.CANNEL=0;
			SpSTaskDel(3);
			LCDMENUDROW();
			break;
		}
		if(MY_Event.Bit.OK)
		{
			MY_Event.Bit.OK=0;
			SpSTaskDel(3);
			LCDMENUDROW();
			if(SINE_SET_INPUT_MODE==1)
			{
				for(INPUT_ii=0;INPUT_ii<INPUT_NUM_ID;INPUT_ii++)
				{
					Watchdog_Clear = 0x0001;
					if(INPUT_NUM[INPUT_ii]>='0'&&INPUT_NUM[INPUT_ii]<='9')
					{
						LCD501_PutChar(16+INPUT_ii*8,32,INPUT_NUM[INPUT_ii]);
						LCD501_PutString(93,32,"HZ"); 
					}
				}
			}
			if(SINE_SET_INPUT_MODE==1)
			{
				SET_FREG=NOW_SET_FREG;
				SendFreq(SET_FREG);
			}
			else if(SINE_SET_INPUT_MODE==2)
				Step_HZ=NOW_SET_FREG;
			SINE_SET_INPUT_MODE=0;
			break;
		}
		SpSTimeDly(1);
	}
}

Uint INPUT_AM()      //输入函数
{
	char INPUT_NUM[3];
	Uint Key = 0;
	Uint INPUT_NUM_ID=0;
	Uint INPUT_ii;
	static Uint old_AM_MA=0;
	AM_MA=0;
	G_ICO_X=16;
	LCD501_ClrScreen(0);
	err = SpSTaskCreate(DisPlay,0,t2stack+49,3);
    INPUT_AM_DROW();
	while(1)
	{
		Watchdog_Clear = 0x0001;
		Key=ScanKeyTask();
		if(INPUT_NUM_ID>0)	
		{
			switch(Key)
			{
				case 0x84 :   //11
				AM_MA==(AM_MA=-INPUT_NUM[INPUT_NUM_ID-1]+'0')/10;
				INPUT_NUM_ID--;
				G_ICO_X-=8;
				LCD501_ClrScreen(0);
				INPUT_AM_DROW();
				break;
				case 0x81 :   //3
				MY_Event.Bit.OK=1;
				//返回SET_FREG值
				break;
				default:
				break;
			}
		}
		if(INPUT_NUM_ID<3||AM_MA<100)
		{
			switch(Key)
			{
				case 0x11 :  	
   				break;
				case 0x21 :
				if(INPUT_NUM_ID==0)
					break;
				INPUT_NUM[INPUT_NUM_ID]=0+'0';
				AM_MA=AM_MA*10+0;	
				G_ICO_X+=8;	   
				INPUT_NUM_ID++; 
				break;
			//	case 0x41 :   //2		
			//	break;
				case 0x12 :   //4
				INPUT_NUM[INPUT_NUM_ID]=1+'0';
				AM_MA=AM_MA*10+1;	
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x22 :   //5
				INPUT_NUM[INPUT_NUM_ID]=2+'0';
				AM_MA=AM_MA*10+2;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x42 :   //6
				INPUT_NUM[INPUT_NUM_ID]=3+'0';
				AM_MA=AM_MA*10+3;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
			//	case 0x82 :   //7
			//	break;
				case 0x14 :   //8
				INPUT_NUM[INPUT_NUM_ID]=4+'0';
				AM_MA=AM_MA*10+4;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x24 :   //9  
				INPUT_NUM[INPUT_NUM_ID]=5+'0';
				AM_MA=AM_MA*10+5;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x44 :   //10
				INPUT_NUM[INPUT_NUM_ID]=6+'0';
				AM_MA=AM_MA*10+6;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x18 :   //9
				INPUT_NUM[INPUT_NUM_ID]=7+'0';
				AM_MA=AM_MA*10+7;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x28 :   //9
				INPUT_NUM[INPUT_NUM_ID]=8+'0';
				AM_MA=AM_MA*10+8;
				G_ICO_X+=8;	
				INPUT_NUM_ID++; 
				break;
				case 0x48 :   //9
				INPUT_NUM[INPUT_NUM_ID]=9+'0';
				AM_MA=AM_MA*10+9;
				G_ICO_X+=8;	
				INPUT_NUM_ID++;
				break;
				case 0x88 :   //9
				break;
				case 0x82:
					MY_Event.Bit.CANNEL=1;
				break;
				default:
				break;
			}
			if(AM_MA!=old_AM_MA)
			{
				for(INPUT_ii=0;INPUT_ii<INPUT_NUM_ID;INPUT_ii++)
				{
					Watchdog_Clear = 0x0001;
					if(INPUT_NUM[INPUT_ii]>='0'&&INPUT_NUM[INPUT_ii]<='9')
					{
						LCD501_PutChar(16+INPUT_ii*8,32,INPUT_NUM[INPUT_ii]);
						LCD501_PutString(93,32,"%"); 
					}
				}
				old_AM_MA=AM_MA;
			}
		}
		if(MY_Event.Bit.OK)
		{
			MY_Event.Bit.OK=0;
			SpSTaskDel(3);
			LCDMENUDROW();
			break;
		}
		if(MY_Event.Bit.CANNEL)
		{
			MY_Event.Bit.CANNEL=0;
			SpSTaskDel(3);
			LCDMENUDROW();
			break;
		}
		SpSTimeDly(1);
	}
}

void Sub_FUNC_MENU()
{
	Uint Key = 0;
	char bbb[8];
	while(1)
	{
		Watchdog_Clear = 0x0001;
		Key=ScanKeyTask();	
		switch(Key)
		{
			case 0x11 :  	
   			break;
			case 0x21 :  		    
			break;
			case 0x41 :   //2	
			break;
			case 0x81 :   //3
			break;
			case 0x12 :   //4
			if(MODE==SINE)
			{
				SET_FREG+=Step_HZ;
				SendFreq(SET_FREG);
				Long2Str(SET_FREG,bbb,8);
				LCD501_PutString(17,31,bbb);
				LCD501_PutString(93,31,"HZ");
			}
			else if(MODE==AM)
			{
				if(AM_MA>=0&&AM_MA<100)
				{
					AM_MA+=10;
					Word2Str(AM_MA,bbb,3);
					LCD501_PutString(17,47,bbb);
					LCD501_PutString(93,47,"%");
					Long2Str(SET_FREG,bbb,8);
					LCD501_PutString(17,31,bbb);
					LCD501_PutString(93,31,"HZ");
					SpFDelINTVec(IRQ2_TB_EN);
					AMReady(AM_MA);
					SpFAddINTVec(IRQ2_TB_EN);
				}
			}
			break;
			case 0x22 :   //5
			if(MODE==SINE)
			{
				SET_FREG-=Step_HZ;		
				SendFreq(SET_FREG);
				Long2Str(SET_FREG,bbb,8);
				LCD501_PutString(17,31,bbb);
				LCD501_PutString(93,31,"HZ");
			}
			else if(MODE==AM)
			{
				if(AM_MA>0&&AM_MA<110)
				{
					AM_MA-=10;
					Word2Str(AM_MA,bbb,3);
					LCD501_PutString(17,47,bbb);
					LCD501_PutString(93,47,"%");
					Long2Str(SET_FREG,bbb,8);
					LCD501_PutString(17,31,bbb);
					LCD501_PutString(93,31,"HZ");
					SpFDelINTVec(IRQ2_TB_EN);
					AMReady(AM_MA);
					SpFAddINTVec(IRQ2_TB_EN);
				}
			}
			break;
			case 0x42 :   //6
			break;
			case 0x82 :   //7
			MY_Event.Bit.OK=1;
			break;
			case 0x14 :   //8
			break;
			case 0x24 :   //9  
			break;
			case 0x44 :   //10
			break;
			case 0x84 :   //11
			break;
			case 0x18 :   //12
			if(MODE==FM)
			{
				SpFDelINTVec(IRQ1_TMA_EN);
				FMReady(SET_FREG,Offset10K);
				Long2Str(SET_FREG,bbb,8);
				LCD501_PutString(17,31,bbb);
				LCD501_PutString(93,31,"HZ");
				LCD501_PutString(17,47,"Offset10K");
				SpFAddINTVec(IRQ1_TMA_EN);
			}
			break;
			case 0x28 :   //13
			if(MODE==FM)
			{
				SpFDelINTVec(IRQ1_TMA_EN);
				FMReady(SET_FREG,Offset5K);
				Long2Str(SET_FREG,bbb,8);
				LCD501_PutString(17,31,bbb);
				LCD501_PutString(93,31,"HZ");
				LCD501_PutString(17,47,"Offset 5K");
				SpFAddINTVec(IRQ1_TMA_EN);
			}
			break;
			case 0x48 :   //14
			if(MODE==SINE)
			{
				SINE_SET_INPUT_MODE=2;
				INPUT_SINE();
			}
			else if(MODE==AM)
			{
				SINE_SET_INPUT_MODE=1;
				INPUT_SINE();
			}
			break;
			case 0x88 :   //15
			if(MODE==SINE)
			{
				SINE_SET_INPUT_MODE=1;
				INPUT_SINE();
			}
			else if(MODE==AM)
			{
				INPUT_AM();   //设定ma  10%~100% 步进10%
				SpFDelINTVec(IRQ2_TB_EN);
				AMReady(AM_MA);
				SpFAddINTVec(IRQ2_TB_EN);
			}
			else if(MODE==FM)
			{
				SINE_SET_INPUT_MODE=1;
				SpFDelINTVec(IRQ1_TMA_EN);
				INPUT_SINE();
				FMReady(SET_FREG,Offset10K);
				SpFAddINTVec(IRQ1_TMA_EN);
			}
			break;
			default:
			break;
		}
		if(MY_Event.Bit.OK)
		{
			MY_Event.Bit.OK=0;
			if(MODE==AM)
				SpFDelINTVec(IRQ2_TB_EN);
			if(MODE==FM)
				SpFDelINTVec(IRQ1_TMA_EN);
			ReturnTOSUBMENU();
			N_M_BEGAINFUNC();
			break;
		}
		SpSTimeDly(1);
	}
}
void Sine_Sub_FUNC()
{
	int  iii;
	MODE=SINE;
	LCDMENUDROW();
	Sub_FUNC_MENU();
}

void Psk_Sub_FUNC()  //Psk 100k固定频率载波
{
	Uint bbb[8];
	MODE=PSK;
	LCDMENUDROW();
	SET_FREG=100000;
	SendFreq(SET_FREG);
	Long2Str(SET_FREG,bbb,8);
	LCD501_PutString(17,31,bbb);
	LCD501_PutString(93,32,"HZ"); 
	Sub_FUNC_MENU();
}

void Ask_Sub_FUNC()    //ask 100k固定频率载波
{
	Uint bbb[8];
	MODE=ASK;
	LCDMENUDROW();
	SET_FREG=100000;
	SendFreq(SET_FREG);
	Long2Str(SET_FREG,bbb,8);
	LCD501_PutString(93,32,"HZ"); 
	LCD501_PutString(17,31,bbb);
	Sub_FUNC_MENU();
}
void FM_Sub_FUNC()    //FM 要求100K-10MHZ
{
	Uint bbb[8];
	MODE=FM;
	LCDMENUDROW();
	SET_FREG=100000;
	FMReady(SET_FREG,Offset10K);
	Long2Str(SET_FREG,bbb,8);
	LCD501_PutString(17,31,bbb);
	LCD501_PutString(93,32,"HZ"); 
	SpFAddINTVec(IRQ1_TMA_EN);
	Sub_FUNC_MENU();
}
void AM_Sub_FUNC()   //AM 要求范围 1MHZ-10MHZ
{
	Uint bbb[8];
	MODE=AM;
	LCDMENUDROW();
	AMReady(AM_MA);
	SET_FREG=1000000;
	SendFreq(SET_FREG);
	Long2Str(SET_FREG,bbb,8);
	LCD501_PutString(17,31,bbb);
	LCD501_PutString(93,32,"HZ"); 
	SpFAddINTVec(IRQ2_TB_EN);
	Sub_FUNC_MENU();
}
void LOGIN()
{
}

⌨️ 快捷键说明

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