亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 以SPCE061A單片機( Single Chip Micyoco)為核心
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "MENU.h"
#include "bit.h"
#include "sposvar.h"
#include "spos.h"
#include "user.h"
#include "9850A.h"
#include "UARTTEST.h"
#define	M_IO_CS	 PA->bit.bit2			//CS與SPCE061A的接口定義
#define N_M_BEGAINFUNC()      (*((*Now_MENU).BeginFunc))()
Uint Keying=0;
unsigned long Step_HZ=100;   //默認步進為100HZ
////////////////////////////////////////////////////////////////////
//                                                                //
//                       OS 相關變量                              //
//                                                                //
////////////////////////////////////////////////////////////////////
int err;          //ERROR NO.
int t1stack[500];  //R-S
int t2stack[50];  //R-S
int dddd222=0;
HEvent G_ICO_sem;
enum FUNC_MODE 
      { 
          SINE=0, 
          PSK=1, 
          ASK=2, 
          FM=3,
          AM=4,
      }MODE;
char str_MODE1[5]="SINE";
char str_MODE2[5]=" PSK";
char str_MODE3[5]=" ASK"; 
char str_MODE4[5]="  FM";
char str_MODE5[5]="  AM";
char *str_MODE[5]={str_MODE1,str_MODE2,str_MODE3,str_MODE4,str_MODE5};
////////////////////////////////////////////////////////////////////
//                                                                //
//                       OS 無關變量                              //
//                                                                //
////////////////////////////////////////////////////////////////////
union _EVENT_FLAG_{
	struct _bit_flag{
		unsigned char INTOSUBMENU		:1;
		unsigned char RETURNMINMENU		:1;
		unsigned char CANNEL 		:1;
		unsigned char OK		:1;
		unsigned char ASK		:1;
		unsigned char PSK		:1;
		unsigned char AM		:1;
		unsigned char FM		:1;
		unsigned char SINE		:1;
		unsigned char Reserve		:9;//保留
	}Bit;
	unsigned char Value;
}MY_Event={0x00};
unsigned long int SET_FREG=100000;
Uint AM_MA=10;    //初始ma值為10%
////////////////////////////////////////////////////////////////////
//                                                                //
//                       菜單相關變量                             //
//                                                                //
////////////////////////////////////////////////////////////////////

MENU Min_MENU,Sub_MENU_SINE,Sub_MENU_PSK,Sub_MENU_ASK,Sub_MENU_FM,Sub_MENU_AM;
MENU *Now_MENU;
unsigned int *PICO[6]={encoding_1286411,encoding_1286412,encoding_1286413,encoding_1286414,encoding_1286415,encoding_1286416};
unsigned int *PICO1[1]={};
int (*PSUBFUNC[6])()={0,0,0,0,0,0};
struct MENU_S (*PSUBMENU[6])={&Sub_MENU_SINE,&Sub_MENU_PSK,&Sub_MENU_ASK,&Sub_MENU_FM,&Sub_MENU_AM,0};
Uint *G_ICO[2]={TU_GUANGBIAOh,TU_GUANGBIAOb};
Uint  G_ICO_X=16;
Uint  G_ICO_Y=32;
void Psk_Sub_FUNC();
void Ask_Sub_FUNC();
void FM_Sub_FUNC();
void AM_Sub_FUNC();
Uint SINE_SET_INPUT_MODE=0;
////////////////////////////////////////////////////////////////////
//                                                                //
//                         功能函數聲明                           //
//                                                                //
////////////////////////////////////////////////////////////////////
void ReturnTOSUBMENU();     //返回主菜單
void Menu_init();    //菜單初始化
Uint ScanKeyTask();  //KEY
void InTOSUBMENU();  //進入子菜單
void SYS_IO_INIT();  //io init
void LCDMENUDROW();  //通用界面
Uint INPUT_SINE();     //輸入函數
void Sine_Sub_FUNC();  //sine 功能函數
void FMReady(unsigned long center_freq,Uint offset);
void LOGIN();
////////////////////////////////////////////////////////////////////
//                                                                //
//                       中斷函數                                 //
//                                                                //
////////////////////////////////////////////////////////////////////

void IRQ1_TMA_ISR()
{
	static	Uint fmi;
	if(fmi<31)
	{
		fmi++;
	}
	else fmi=0;
//*	SendFreq(CurrentFreq+DirUnFMed[fmi]);
	f_freqword=DirFMword[fmi];
	UpdateDDS();
}
void IRQ2_TMB_ISR()
{
	static Uint ami;
	if(ami<41)
	{
		ami++;
	}
	else ami=0;
	DA0=AMoffset[ami];
}
////////////////////////////////////////////////////////////////////
//                                                                //
//                       主函數                                   //
//                                                                //
////////////////////////////////////////////////////////////////////

void main(void)

{
	void MainTask();
    void Timer_INT();
    void DisPlay();
    void Task1();
    void IRQ1_TMA_ISR();
    void IRQ2_TMB_ISR();
    Delaydds(10);
	SpSInit();
	MODE=0xff;
	Menu_init();
	SYS_IO_INIT();
	LCD501_Init(0);				//初始化端口、包括LCD的初始設置、以及顯示初始(即傳到函數的參數
    LCD501_SetContrast(05);
    err = SpSTaskCreate(MainTask,0,t1stack+499,1);
    SpSSetVector(IRQ1_TMA_VEC,IRQ1_TMA_ISR);
    SpSSetVector(IRQ2_TMB_VEC,IRQ2_TMB_ISR);
    Now_MENU=&Min_MENU;
    G_ICO_sem=SpSSemCreate(0);
    P1_7=0;
	SpSStart();
}





////////////////////////////////////////////////////////////////////
//                                                                //
//                         系統任務                               //
//                                                                //
////////////////////////////////////////////////////////////////////
void MainTask()
{
	Uint dd=0;
	Uint Key = 0;
	int BBB[8];
	unsigned int  iii;
	SET_FREG=100000;      //初始化100KHZ
	SendFreq(SET_FREG);
	N_M_BEGAINFUNC();
	while(1)
	{
		Watchdog_Clear = 0x0001;
		Key=ScanKeyTask();	
		switch(Key)
		{
			case 0x11 : 
			if((*Now_MENU).IDPoint==0)
    			(*Now_MENU).IDPoint=(*Now_MENU).ucCount;  	
			if((*Now_MENU).IDPoint>0)
    			(*Now_MENU).IDPoint--;
			N_M_BEGAINFUNC();//(*((*Now_MENU).BeginFunc))();   
   			break;
			case 0x41 :   //2	
			if((*Now_MENU).IDPoint<(*Now_MENU).ucCount)
    			(*Now_MENU).IDPoint++;
    		if((*Now_MENU).IDPoint==(*Now_MENU).ucCount)
    			(*Now_MENU).IDPoint=0;
    		N_M_BEGAINFUNC();//(*((*Now_MENU).BeginFunc))()
			break;
			case 0x81 :   //3
			InTOSUBMENU();
			break;
		 	case 0x12 :   //4
		 	//iii=iii+100;
		 //	SendFreq(iii);
			break;
			case 0x22 :   //5
		//	iii=iii-100;
		//	SendFreq(iii);
			break;
			case 0x42 :   //6
			break; 
			case 0x82 :   //7
			ReturnTOSUBMENU();
			break;
			case 0x14 :   //8
			break;
			case 0x24 :   //9  
			break;
		/*	case 0x44 :   //10
			break;
			case 0x84 :   //11
			break;
			case 0x18 :   //12
			break;
			case 0x28 :   //13
			break;*/
			case 0x48 :   //14
			break;   
			case 0x88 :   //15
			break;
			default:
			break;
		}
		SpSTimeDly(1);
	}
}


void DisPlay()
{

	static int YD_vv=0;
	char DisPlay_ID=0;
	Uint DisPlay_i;
	while(1)
    {
    	Watchdog_Clear = 0x0001;
    	LCD501_Bitmap(G_ICO_X,G_ICO_Y,G_ICO[DisPlay_ID],0);
    	if(DisPlay_ID==0)
    		DisPlay_ID=1;
    	else if(DisPlay_ID==1)
    		DisPlay_ID=0;
    	Delaydds(2000);
    	SpSTimeDly(1);
    }
}
////////////////////////////////////////////////////////////////////
//                                                                //
//                         功能函數                               //
//                                                                //
////////////////////////////////////////////////////////////////////

void SYS_IO_INIT()
{
	P0_Dir_Highbyte=0xf0;
	P0_Attrib_Highbyte=0xf0;
	P0_Highbyte=0xf0;
	P1_Dir=0xffff;
	P1_Attrib=0xffff;
	P1=0;
}
Uint ScanKeyTask()             //鍵盤掃描任務
{  
	unsigned int iTemp;
    unsigned int Keyval;

		Watchdog_Clear=1;
		P0_Dir_Highbyte=0xf0;
	    P0_Attrib_Highbyte=0xf0;
		P0_Highbyte=0xf0;
		Delaydds(10);
        Keyval = P0_Highbyte;
        if(Keyval!=0xf0)
        {
        	Keyval = P0_Highbyte;
        	if(Keyval!=0xf0)
        	{
        		Keyval&=0x0f;
        		P0_Dir_Highbyte=0x0f;
	    		P0_Attrib_Highbyte=0x0f;
				P0_Highbyte=0x0f;
				SpSTimeDly(1);
				iTemp=P0_Highbyte;
				Keyval|= iTemp&0xf0;
				while(P0_Highbyte==iTemp)
				{
					Delaydds(10);
					Watchdog_Clear=1;	
				}
			return Keyval;
			}
        }
}
void FMReady(unsigned long center_freq,Uint offset)
{
	Uint mi;
	SpFSetTimer(OS_SET_TIMEA,0x30,0xfd00);				//center_freqword=freq*42.949673;
	for(mi=0;mi<32;mi++)		//f_freqword=(center_freq+deltafreq)*42.949673=center_freqword+deltafreq*42.949673;
	{
		
		if(offset)
		{
			DirFMword[mi]=(unsigned long)((DirUnFMed[mi]+center_freq)*42.94967296);
		}
		else
		{
			DirFMword[mi]=(unsigned long)(DirUnFMed[mi]*21.47483648+center_freq*42.94967296);
		}
	}
}

void AMReady(Uint ma)			//他媽的ma怎么確定調制信號的幅度和偏移啊??
{
	Uint mi;
	float aama;
	if(ma<=100)
	{
		aama=ma;
		aama=aama/100;	
		SpFSetTimer(OS_SET_TIMEB,0,0xfdb7);	
		for(mi=0;mi<42;mi++)
		{
			AMoffset[mi]=(Uint)((aama*UnAMed[mi])+32767);
		}
	}
}


////////////////////////////////////////////////////////////////////
//                                                                //
//                    菜單相關功能函數                            //
//                                                                //
////////////////////////////////////////////////////////////////////
void Menu_init()
{
	Min_MENU.ucCount=6;
	Min_MENU.pIcon=PICO;
	Min_MENU.BeginFunc=heiheiDisplayMenu;
	Min_MENU.IDPoint=0;
	Min_MENU.SubFunc=PSUBFUNC;
	Min_MENU.SubMenu=PSUBMENU;
	PSUBFUNC[0]=InTOSUBMENU;
	Sub_MENU_SINE.ucCount=1;
	Sub_MENU_SINE.pIcon=PICO1;
	Sub_MENU_SINE.BeginFunc=Sine_Sub_FUNC;
	Sub_MENU_SINE.IDPoint=0;
	Sub_MENU_SINE.SubFunc=0;
	Sub_MENU_PSK.ucCount=1;
	Sub_MENU_PSK.pIcon=PICO1;
	Sub_MENU_PSK.BeginFunc=Psk_Sub_FUNC;
	Sub_MENU_PSK.IDPoint=0;
	Sub_MENU_PSK.SubFunc=0;
	Sub_MENU_ASK.ucCount=1;
	Sub_MENU_ASK.pIcon=PICO1;
	Sub_MENU_ASK.BeginFunc=Ask_Sub_FUNC;
	Sub_MENU_ASK.IDPoint=0;
	Sub_MENU_ASK.SubFunc=0;
	Sub_MENU_FM.ucCount=1;
	Sub_MENU_FM.pIcon=PICO1;
	Sub_MENU_FM.BeginFunc=FM_Sub_FUNC;
	Sub_MENU_FM.IDPoint=0;
	Sub_MENU_FM.SubFunc=0;
	Sub_MENU_AM.ucCount=1;
	Sub_MENU_AM.pIcon=PICO1;
	Sub_MENU_AM.BeginFunc=AM_Sub_FUNC;
	Sub_MENU_AM.IDPoint=0;
	Sub_MENU_AM.SubFunc=0;
}
void heiheiDisplayMenu()
{
	LCD501_ClrScreen(0);
	LCD501_Bitmap(0,0,(*Now_MENU).pIcon[(*Now_MENU).IDPoint],0);
}
void InTOSUBMENU()     //進入子菜單
{
	Now_MENU=((*Now_MENU).SubMenu)[(*Now_MENU).IDPoint];
	N_M_BEGAINFUNC();
}

void ReturnTOSUBMENU()     //返回主菜單
{
	Now_MENU=&Min_MENU;
}

void LCDMENUDROW()        //通用界面
{
	LCD501_ClrScreen(0);
	LCD501_Rectangle(0,0,127,63,0);
	LCD501_Bitmap(1,1,hanzi_dang);
	LCD501_Bitmap(17,1,hanzi_qiang);
	LCD501_Bitmap(17+16,1,hanzi_mo);
	LCD501_Bitmap(17+16+16,1,hanzi_shi);
	LCD501_PutString(17+16+16+16,1,":");
	LCD501_PutString(17+16+16+16+8,1,str_MODE[MODE]);
	if(MODE==SINE||MODE==AM)
		LCD501_PutString(1,16+1,"KEY5 +  KEY6 -");
	if(MODE==FM)
		LCD501_PutString(1,16+1,"K7 10K   K8 5K");
}
void INPUT_SINE_DROW()
{
	LCD501_PutString(93,32,"HZ"); 
	LCD501_Bitmap(0,0,hanzi_qing);
	LCD501_Bitmap(16,0,hanzi_shu);
	LCD501_Bitmap(16+16,0,hanzi_ru);
	LCD501_Bitmap(16+16+16,0,hanzi_she);
	LCD501_Bitmap(16+16+16+16,0,hanzi_ding);
	LCD501_Bitmap(16+16+16+16+16,0,hanzi_pin);
	LCD501_Bitmap(16+16+16+16+16+16,0,hanzi_lv);
	LCD501_PutString(16+16+16+16+16+16+16,0,":");
}
void INPUT_AM_DROW()
{
	LCD501_PutString(93,32,"%"); 
	LCD501_Bitmap(0,0,hanzi_qing);
	LCD501_Bitmap(16,0,hanzi_shu);
	LCD501_Bitmap(16+16,0,hanzi_ru);
	LCD501_Bitmap(16+16+16,0,hanzi_she);
	LCD501_Bitmap(16+16+16+16,0,hanzi_ding);
	LCD501_PutString(16+16+16+16+16,0,":");
 	LCD501_PutString(16+16+16+16+16+8,0,"ma");
 	LCD501_PutString(16+16+16+16+16+8+16,0,"%");
 
}

Uint INPUT_SINE()      //輸入函數
{
	char INPUT_NUM[8];
	Uint Key = 0;
	Uint INPUT_NUM_ID=0;
	Uint INPUT_ii;
	static unsigned long old_SET_FREG=0;
	unsigned long NOW_SET_FREG=0;
	G_ICO_X=16;
	LCD501_ClrScreen(0);	
	err = SpSTaskCreate(DisPlay,0,t2stack+49,3);
	INPUT_SINE_DROW();
	if(SINE_SET_INPUT_MODE==2)
	{
		LCD501_Bitmap(16+16+16,0,hanzi_bu);
		LCD501_Bitmap(16+16+16+16,0,hanzi_jin);
	}
	while(1)
	{
		Watchdog_Clear = 0x0001;
		Key=ScanKeyTask();
		if(INPUT_NUM_ID>0)	
		{
			switch(Key)
			{
				case 0x84 :   //11
				NOW_SET_FREG=(NOW_SET_FREG-INPUT_NUM[INPUT_NUM_ID-1]+'0')/10;
				INPUT_NUM_ID--;
				G_ICO_X-=8;
				LCD501_ClrScreen(0);
				INPUT_SINE_DROW();
				break;
				case 0x81 :   //3
				MY_Event.Bit.OK=1;
				//返回SET_FREG值
				break;
				default:
				break;
			}
		}
		if(INPUT_NUM_ID<8)
		{
			switch(Key)
			{
				case 0x11 :  	
   				break;
				case 0x21 :
				if(INPUT_NUM_ID==0)
					break;
				INPUT_NUM[INPUT_NUM_ID]=0+'0';
				NOW_SET_FREG=NOW_SET_FREG*10+0;	
				G_ICO_X+=8;	   
				INPUT_NUM_ID++; 
				break;
			//	case 0x41 :   //2		
			//	break;
				case 0x12 :   //4

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美黑人一区二区三区| 成人av中文字幕| 亚洲视频在线一区观看| 久久精品一区四区| 日本一区免费视频| 中文字幕在线观看不卡| 国产精品久久久久一区| 国产精品女人毛片| 亚洲免费色视频| 香蕉成人伊视频在线观看| 日本亚洲一区二区| 成人丝袜高跟foot| 不卡一二三区首页| 91黄色免费版| 91精选在线观看| 国产婷婷色一区二区三区| 久久天天做天天爱综合色| 国产欧美日韩在线看| 中文字幕亚洲视频| 香蕉久久一区二区不卡无毒影院 | 色www精品视频在线观看| 91精品福利在线| 91精品国产一区二区三区香蕉| 日韩精品最新网址| 国产精品久久久久桃色tv| 亚洲综合激情小说| 免费不卡在线视频| 在线观看免费亚洲| 欧美成人女星排行榜| 国产精品毛片高清在线完整版| 亚洲欧美一区二区不卡| 热久久免费视频| 不卡av电影在线播放| 欧美一级久久久久久久大片| 欧美激情一区在线观看| 亚洲国产一区二区a毛片| 国产精品538一区二区在线| 在线看不卡av| 精品国产一区二区国模嫣然| 又紧又大又爽精品一区二区| 久草中文综合在线| 欧美影片第一页| 国产欧美一区二区精品秋霞影院| 亚洲午夜成aⅴ人片| 懂色av一区二区三区蜜臀| 欧美亚洲另类激情小说| 国产精品素人视频| 久久精品999| 欧美日韩一区二区欧美激情| 欧美激情一二三区| 韩国女主播成人在线观看| 欧美三级乱人伦电影| 中文字幕一区二区三区乱码在线| 视频精品一区二区| 欧美影院精品一区| 亚洲视频免费在线观看| 国产成人亚洲综合a∨婷婷 | 国产精品原创巨作av| 欧美精选在线播放| 亚洲一区二区三区在线看| 不卡大黄网站免费看| 国产欧美精品一区aⅴ影院| 久国产精品韩国三级视频| 91精品欧美久久久久久动漫| 亚洲在线视频网站| 色久优优欧美色久优优| 自拍偷自拍亚洲精品播放| 丁香激情综合国产| 国产精品素人一区二区| 丰满少妇在线播放bd日韩电影| 欧美videos中文字幕| 日本不卡一区二区三区高清视频| 欧美艳星brazzers| 亚洲成人激情自拍| 欧美性色综合网| 亚洲综合成人在线视频| 欧美图区在线视频| 亚洲一区二区av在线| 欧美日韩中文字幕一区二区| 夜夜亚洲天天久久| 欧美精品免费视频| 开心九九激情九九欧美日韩精美视频电影 | 欧洲一区在线观看| 亚洲国产乱码最新视频| 欧美三级电影一区| 视频一区二区三区入口| 日韩视频免费观看高清完整版在线观看 | 91免费国产在线观看| 亚洲三级在线观看| 欧美综合视频在线观看| 日韩高清一区二区| 精品久久久久久久一区二区蜜臀| 久久99精品国产91久久来源| 久久久久99精品一区| www.成人在线| 亚洲国产成人av网| 日韩女优毛片在线| 成人午夜免费电影| 一区二区三区久久| 日韩欧美一区二区三区在线| 国产高清成人在线| 亚洲激情图片一区| 日韩一区二区三区av| 国产精品系列在线观看| 亚洲精品国产一区二区精华液 | 91精品婷婷国产综合久久竹菊| 天天综合色天天| 国产三级精品视频| 欧美日韩一区二区三区四区| 免费成人你懂的| 免费高清在线视频一区·| 精品播放一区二区| 色综合天天综合| 激情偷乱视频一区二区三区| 成人免费一区二区三区在线观看 | 五月综合激情婷婷六月色窝| 久久精品在这里| 欧美日韩免费观看一区三区| 国产美女在线精品| 亚洲成人免费影院| 中文无字幕一区二区三区 | 国产精品嫩草影院com| 欧美精品免费视频| 色综合久久99| 懂色av中文一区二区三区| 日本系列欧美系列| 亚洲一区二区三区四区在线| 国产亚洲视频系列| 欧美大片拔萝卜| 欧美日韩精品一区二区| 92国产精品观看| 粉嫩av一区二区三区| 久久99国内精品| 免费成人美女在线观看| 亚洲福利视频一区二区| 亚洲男人天堂av| 一区视频在线播放| 国产精品免费视频网站| wwwwww.欧美系列| 欧美一区二区视频网站| 欧美午夜一区二区三区 | 欧美日韩精品三区| 色成年激情久久综合| 99综合影院在线| 欧美日韩国产综合视频在线观看 | 一区二区三区小说| 国产精品国产三级国产三级人妇| 精品国产乱码久久久久久久久| 6080国产精品一区二区| 欧美精品日韩综合在线| 欧美日韩国产综合一区二区 | 成人久久久精品乱码一区二区三区| 奇米精品一区二区三区在线观看一 | 国产日韩欧美不卡在线| 久久免费精品国产久精品久久久久| 日韩区在线观看| 欧美大片在线观看一区| 日韩三级免费观看| 久久视频一区二区| 国产情人综合久久777777| 国产欧美精品一区二区色综合朱莉 | 色欧美日韩亚洲| 在线免费av一区| 在线播放欧美女士性生活| 欧美一级日韩一级| www国产精品av| 中文一区在线播放| 亚洲免费观看视频| 三级精品在线观看| 国产一区二区在线观看免费| 国产精品一二三四| 色综合天天综合在线视频| 久久久精品影视| 国产精品视频yy9299一区| 一区二区三区四区在线| 日韩高清电影一区| 国产一区二区福利视频| av电影天堂一区二区在线观看| 在线免费观看不卡av| 欧美电视剧免费观看| 亚洲国产精品国自产拍av| 亚洲精品国产视频| 免费高清不卡av| 99视频精品在线| 日韩一区二区三区免费观看| 中文一区在线播放| 偷窥少妇高潮呻吟av久久免费| 精品一区二区日韩| 日本道精品一区二区三区| 日韩精品专区在线影院观看| 国产精品久久久久久户外露出| 亚洲成a人片在线不卡一二三区 | 国产精品国产a| www.在线欧美| 国产精品一二三四区| 在线看国产日韩| 国产亚洲精品久| 亚洲成av人片一区二区梦乃 | 国产精品456| 91精品国模一区二区三区|