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

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

?? alarm.c

?? 多功能MP3代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	if((Alarm[AlarmInLine].Status&0x03)==0)
	{
		Alarm[AlarmInLine].Status&=0xF7; //取消鬧鈴  
		Save_Alarm(AlarmInLine);//將數據保存,下次不再啟用  
	}
	READ_GRAM(111,151);
	BACK_COLOR=GRAY;
	POINT_COLOR=BLACK;																		 
	TFT_ShowNum(112,152,Alarm[AlarmInLine].hour,2,16,0x00); 
	TFT_ShowChar(128,152,':',16,0x00);
	TFT_ShowNum(136,152,Alarm[AlarmInLine].min,2,16,0x00);
	POINT_COLOR=GRED;
	TFT_DrawRectangle(111,151,152,168);
												   	 
	Play_Alarm_Ring();//響鬧鈴	    

	RECOVER_GRAM(111,151); 
	Init_Alarm_Reg();//取得下一個鬧鐘的時間	

	POINT_COLOR=cpcolor;//恢復先前的畫筆狀態
	BACK_COLOR=cbcolor;		 
}
//鬧鐘初始化
void Alarm_Init(void)
{
	u8 t,i;
	while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步  
	RTC->CRH|=0X02;  		  //允許鬧鐘中斷
	while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
	rtc_get();//得到時間   
	t=FM24C16_ReadOneByte(263);//讀取第一個鬧鐘的小時
	if(t>23) //未被初始化
	{
		for(i=0;i<8;i++)//初始化
		{
			Alarm[i].Status=0;
			Alarm[i].WeekMark=0;
			Alarm[i].Ring=0;
			Alarm[i].hour=0;
			Alarm[i].min=0;
			Alarm[i].Ring_Addr=0;
		}
		Save_Alarm(8);//全部保存   		
	}else Read_Alarm(8);//全部讀取鬧鐘數據,包括鬧鐘鈴聲
	Init_Alarm_Reg(); //更新鬧鐘寄存器	   
}
//加載星期自定義的設置
void Self_Define(u8 sfd)
{
	u8 t;		   
	BACK_COLOR=LGRAY;
	//加載條目信息
	for(t=0;t<7;t++)
	{	 	
		if(sfd&0x80)POINT_COLOR=RED;
		else POINT_COLOR=LGRAY;	 
		TFT_DrawRectangle(20+29*t,146,46+29*t,162);//26*16方框 
		sfd<<=1;													      
	}  
}


//顯示鈴聲的名字
void Show_Ring_Name(void)
{				 
	u8 str[8];
	if(Alarm_Temp.Status&0x04)//收音機作為鈴聲
	{													 
		if(Alarm_Temp.Ring_Addr>=8750&&Alarm_Temp.Ring_Addr<=10800)//存在合法頻段
		{
			str[0]='F';
			str[1]='M'; 
			if(Alarm_Temp.Ring_Addr>=10000)str[2]='1';//
			else str[2]=' ';//	 
			str[3]=(Alarm_Temp.Ring_Addr/1000)%10+'0';//
			str[4]=(Alarm_Temp.Ring_Addr/100)%10+'0';//
			str[5]='.';//
			str[6]=(Alarm_Temp.Ring_Addr/10)%10+'0';//小數點后一位
		   	str[7]='\0';//加入結束符	 
			Show_Str_Mid(0,210,str,0x00,240); //疊加模式,非自動換
		}else Show_Str_Mid(0,210,"空白",0x00,240); //不存在FM,跳出	   
	}
	else //MP3作為鈴聲
	{	
		if(Alarm_Temp.Ring_Addr>2)Show_Str_Mid(0,210,Alarm_Temp.Ring_Name,0x00,240); //疊加模式,非自動換
		else Show_Str_Mid(0,210,"空白",0x00,240); //疊加模式,非自動換																						  
	}  	
}


u8 AlarmTPos=0;//鬧鈴時鐘所在位置  XX:XX 共四位
//選項選中/取消
//num:目錄項 0,1,2,4,5
//sel:1選中/0取消   
void Item_Sel(u8 num,u8 sel)
{
	u8 temp;		 	
	
	Self_Define(0);//默認去除星期框	    
	if(num==1||num==4)BACK_COLOR=WHITE;//假定沒有選中,原背景
	else BACK_COLOR=LGRAY;	  
	if(sel)BACK_COLOR=BROWN;//棕色背景,選中了
	POINT_COLOR=BLACK;      //筆是黑色的
	temp=Alarm_Temp.Status; //得到狀態值	  
	switch(num)
	{
		case 0:	//鬧鈴開關						   
			if(temp&0x08)Show_Str(144,50,"打開",0x00); //非疊加模式,非自動換行	
			else Show_Str(144,50,"關閉",0x00); //非疊加模式,非自動換行	  
			break;
		case 1://鬧鈴時間 	 									  
			temp=Alarm_Temp.hour;//獲得小時	   
			TFT_ShowChar(140,82,temp/10+'0',16,0x00);	   
			TFT_ShowChar(148,82,temp%10+'0',16,0x00); 	 
			TFT_ShowChar(156,82,':',16,0x00);

			temp=Alarm_Temp.min;//獲得分鐘
			TFT_ShowChar(164,82,temp/10+'0',16,0x00);  
			TFT_ShowChar(172,82,temp%10+'0',16,0x00);	  
			if(sel)
			{	
				BACK_COLOR=BLUE;//
				POINT_COLOR=WHITE;				 
				switch(AlarmTPos)
				{	
					case 0:
						TFT_ShowChar(140,82,Alarm_Temp.hour/10+'0',16,0x00);
						break;
					case 1:
						TFT_ShowChar(148,82,Alarm_Temp.hour%10+'0',16,0x00);
						break; 
					case 2:
						TFT_ShowChar(164,82,Alarm_Temp.min/10+'0',16,0x00); 
						break;
					case 3:
						TFT_ShowChar(172,82,Alarm_Temp.min%10+'0',16,0x00);
						break;
				}
				Load_KeyBoard(1);//加載鍵盤		   
			}else Load_KeyBoard(0);	  
			break;
		case 2://響鈴方式 
			temp=temp&0x03;	  
			switch(temp)
			{
				case 0://一次
					Show_Str(136,114," 一次 ",0x00); //疊加模式,非自動換行  
					break;	
				case 1://每天
					Show_Str(136,114," 每天 ",0x00); //疊加模式,非自動換行	  
					break;
				case 2://自定義
					Show_Str(136,114,"自定義",0x00); //疊加模式,非自動換行
					Self_Define(Alarm_Temp.WeekMark);//加載星期框		   
					break;
			}
			break;
		case 4:
			if(temp&0x04)//FM作為鈴聲
			{
				Read_Ring(1,Alarm_Temp.Ring,Alarm_Temp.Ring_Name,&Alarm_Temp.Ring_Addr); 
				Show_Str(136,178,"FM廣播",0x00); //疊加模式,非自動換行	
			}
			else //MP3作為鈴聲
			{
				Read_Ring(0,Alarm_Temp.Ring,Alarm_Temp.Ring_Name,&Alarm_Temp.Ring_Addr);
				Show_Str(136,178," 鈴聲 ",0x00); //疊加模式,非自動換行
			}
			TFT_Fill(0,202,239,234,LGRAY);//清空上次顯示
			BACK_COLOR=LGRAY;
			Show_Ring_Name();
			break;
		case 5:	   
			TFT_Fill(0,202,239,234,LGRAY);//清空上次顯示
			Show_Ring_Name();			break;  
	}
}
//處理鍵值
//selx:鍵值條目編號	   
void Pro_Key_Alarm(u8 selx)
{
	u8 temp;	  
	switch(selx)
	{
		case 0://開關按鍵		 										   
			if(Is_In_Area(85,46,109,70)||Is_In_Area(210,46,234,70))
			{
				if(Alarm_Temp.Status&0x08)Alarm_Temp.Status&=0xF7;//取消操作
				else Alarm_Temp.Status|=0x08;//選擇操作
				Item_Sel(0,1);
			}
			break;
		case 1://時間設置	  
			if(Is_In_Area(140,82,148,98))AlarmTPos=0;//選中小時十位
			else if(Is_In_Area(148,82,156,98))AlarmTPos=1;//選中小時個位
			else if(Is_In_Area(164,82,172,98))AlarmTPos=2;//選中分鐘十位
			else if(Is_In_Area(172,82,180,98))AlarmTPos=3;//選中分鐘個位
			Item_Sel(1,1);    
			break;
		case 2://響鈴方式
			temp=Alarm_Temp.Status&0x03;	
			if(Is_In_Area(85,110,109,134))//左鍵
			{
				if(temp)temp--;
				else temp=2;
			}else if(Is_In_Area(210,110,234,134))//右鍵
			{
				temp++;
				if(temp>2)temp=0;
			}
			Alarm_Temp.Status&=0XFC;
			Alarm_Temp.Status|=temp;
			Item_Sel(2,1);
			break;
		case 4:	//鈴聲設置
			if(Is_In_Area(85,174,109,198)||Is_In_Area(210,174,234,198))
			{
				if(Alarm_Temp.Status&0x04)Alarm_Temp.Status&=0xFB;//取消操作 0,MP3鈴聲
				else Alarm_Temp.Status|=0x04;//選擇操作	1,FM鈴聲
				Item_Sel(4,1);
			}
			break;		
		case 5:
			Set_Alarm_Ring();     //鬧鐘鈴聲			  
			Load_Gui_Set_Alarm(); //裝載ALARM編輯主界面 
			for(temp=0;temp<6;temp++)
			{
				if(temp==5)Item_Sel(temp,1);//選中鬧鈴開關
				else if(temp!=3)Item_Sel(temp,0); 
			}				  
			break;				
	}
}   
//得到星期幾按鍵返回值
//返回:1~8
//返回8:按鍵無效   
u8 Get_WeekBit_Val(void)
{
	u8 t;
	for(t=0;t<7;t++)if(Is_In_Area(20+29*t,146,46+29*t,162))return t+1;//返回星期幾的編號
	return 8;
}
//設置鬧鐘	
//index:鬧鐘編號		  
void Set_Alarm(u8 index)
{	
	u8 key,sel;	  
	Alarm_Temp=Alarm[index];
	Alarm_Temp.Ring=index;//保存鬧鐘編號	  
	Read_Ring(Alarm_Temp.Status&0x04,Alarm_Temp.Ring,Alarm_Temp.Ring_Name,&Alarm_Temp.Ring_Addr);//讀取鬧鐘鈴聲信息	   
	Load_Gui_Set_Alarm();  //裝載ALARM編輯主界面 
	for(sel=0;sel<6;sel++)
	{
		if(sel==0)Item_Sel(sel,1);//選中鬧鈴開關
		else if(sel!=3)Item_Sel(sel,0); 
	}   
	key=0;
	sel=0;//默認選擇0
	Pen_Point.Key_Sta=Key_Up;//釋放顯示期間的觸發 
	while(1)//等待按鍵
	{
		if((Pen_Point.Key_Sta==Key_Down||NPEN)&&Pen_Point.Key_LSta)key=Touch_To_Num(4);//得到按鍵值	  
		if(PEN)//按鍵松開了,狀態改變(狀態機)
		{
			Pen_Point.Key_LSta=1;	 
			Pen_Point.Key_Sta=Key_Up;
		}   
		if(key)//有按鍵按下
		{  			   
			Pen_Point.Key_LSta=0;
			switch(key)
			{
				case 1:
				case 2:
				case 3:	   
				case 5:
				case 6:	  			 
					key-=1;					 	  
					if(sel!=key&&key<8)//選中一個
					{
						AlarmTPos=0;//復位到第一位														 
						Item_Sel(sel,0);
			        	sel=key;//選擇這次選擇的
						Item_Sel(sel,1); 
					}else if(sel==key)//選擇按鈕,或者雙擊
					{
						Pro_Key_Alarm(sel);//操作
					}  
					break;  
				case 9://確認按鈕按下了
					Alarm[index]=Alarm_Temp;	   
					Save_Alarm(index);//保存特定編號的鬧鐘數據
					Init_Alarm_Reg(); //更新鬧鐘寄存器
					return;           //保存并返回		  	  
				case 10:return;//選擇了"返回"按鈕,返回一個不可能值
				default:
					if(sel==1)//時間輸入
					{
						key=Get_KeyBoard_Val();
						if(key==10&&AlarmTPos)AlarmTPos--;//退格操作
						if(key<10)
						{
							switch(AlarmTPos)
							{
								case 0://修改小時的十位	  
									Alarm_Temp.hour%=10;
									Alarm_Temp.hour+=key*10;
									if(Alarm_Temp.hour>23)Alarm_Temp.hour=23;
									break;
								case 1:																			  	  
									Alarm_Temp.hour/=10;
									Alarm_Temp.hour*=10;    
									Alarm_Temp.hour+=key;
									if(Alarm_Temp.hour>23)Alarm_Temp.hour=23;
									break;
								case 2://修改分鐘的十位
									if(key>5)key=5;
									Alarm_Temp.min%=10;
									Alarm_Temp.min+=key*10;
									break;
								case 3:				  
									Alarm_Temp.min/=10;
									Alarm_Temp.min*=10;
									Alarm_Temp.min+=key;
									break;
							}
							if(AlarmTPos<3)AlarmTPos++;//自動切換到下一個  
						}
						Item_Sel(1,1);//更新顯示數據	    
					}else if(sel==2&&(((Alarm_Temp.Status)&0x03)==2))//自定義星期
					{
						key=Get_WeekBit_Val();
						if(key<8)
						{
							key=8-key;
							if(Alarm_Temp.WeekMark&(1<<key))
							{
							 	Alarm_Temp.WeekMark&=~(1<<key);
							}else 
							{
								Alarm_Temp.WeekMark|=(1<<key);
							}
						}
						Item_Sel(2,1);	 
					} 
					break; 
			}  
			key=0;//取消按鍵值											    
		}   
		delay_ms(1);	
	}  
}	  			   
//鬧鐘瀏覽
//相關鬧鐘的設置全部在這個函數里面了
void Alarm_Viewer(void)	  
{					    
	u8 selx=0;
	u8 t;
	u8 *p=(u8 *)iclip;
ARST:
	Read_Alarm(8);//獲取鬧鐘數據   	 
	for(t=0;t<8;t++)Alarm_F1[t]=p+t*30;//地址映射到 Alarm_F1里面 
	for(t=0;t<8;t++)
	{	   
		Alarm_F1[t][0]=Alarm[t].hour/10+'0';
		Alarm_F1[t][1]=Alarm[t].hour%10+'0';
		Alarm_F1[t][2]=':';
		Alarm_F1[t][3]=Alarm[t].min/10+'0';
		Alarm_F1[t][4]=Alarm[t].min%10+'0';    
		Alarm_F1[t][5]='\0'; //添加結束符	     						 
	}	  
	while(1)
	{
		selx=Load_Fun_Sel((const u8 * *)Alarm_F1,"鬧鐘設置","編輯",8,selx);
		if(selx==8)return;//返回
		else 
		{	 	
			Set_Alarm(selx);//設置鬧鐘			goto ARST;
		}
	}
}

































?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最好看的中文字幕久久| 亚洲靠逼com| 日韩视频在线永久播放| 欧美日韩在线播放| 欧美乱熟臀69xxxxxx| 欧美日韩精品二区第二页| 色综合中文综合网| 国产日韩欧美麻豆| 国产日韩影视精品| 国产精品激情偷乱一区二区∴| 国产精品日韩精品欧美在线| 国产精品久久毛片| 亚洲免费av高清| 无吗不卡中文字幕| 久久99精品久久久久久久久久久久| 麻豆一区二区三区| 国产成人精品免费在线| 99久精品国产| 91精品婷婷国产综合久久性色 | 韩国精品久久久| 国产高清精品在线| 在线亚洲人成电影网站色www| 欧美三级视频在线播放| 精品精品国产高清a毛片牛牛| 国产欧美精品在线观看| 一区二区三区鲁丝不卡| 日本成人在线看| 成人免费视频免费观看| 欧美日韩一区二区在线观看| 欧美大片国产精品| 国产精品福利在线播放| 视频一区视频二区在线观看| 国产精品亚洲午夜一区二区三区 | 日日夜夜免费精品| 国产精品亚洲专一区二区三区 | 99九九99九九九视频精品| 欧美亚洲自拍偷拍| 久久精品视频一区二区三区| 亚洲国产精品一区二区久久| 精品在线亚洲视频| 日本韩国视频一区二区| 日韩欧美国产一二三区| 亚洲码国产岛国毛片在线| 激情欧美一区二区三区在线观看| 91视视频在线观看入口直接观看www | 欧美国产日本韩| 日韩成人精品视频| 91麻豆精品在线观看| 日韩午夜在线观看视频| 亚洲小少妇裸体bbw| 成人美女视频在线观看| 精品久久一区二区| 天天影视网天天综合色在线播放| av亚洲精华国产精华精| 久久久久久麻豆| 丰满亚洲少妇av| 91麻豆精品国产综合久久久久久| 亚洲视频一二三区| 播五月开心婷婷综合| 久久久久国产一区二区三区四区| 日韩不卡一二三区| 欧美日韩欧美一区二区| 亚洲精品乱码久久久久久黑人 | 欧美在线你懂得| 中文字幕五月欧美| 成人激情午夜影院| 中文字幕+乱码+中文字幕一区| 偷拍与自拍一区| 欧美久久久久久蜜桃| 亚洲一区二区在线观看视频| 色欲综合视频天天天| 椎名由奈av一区二区三区| 成人av网址在线| 国产精品久久久久久久第一福利 | 国产精品国产成人国产三级 | 亚洲欧洲精品一区二区三区| 国产成人午夜精品5599| 国产亚洲欧美日韩日本| 国产mv日韩mv欧美| 国产精品天干天干在观线| 岛国一区二区在线观看| 国产精品久久久久影视| av在线播放一区二区三区| 亚洲猫色日本管| 欧美亚洲自拍偷拍| 日韩高清在线不卡| 精品国产一区二区三区忘忧草 | 国产精品久线在线观看| proumb性欧美在线观看| 亚洲欧洲日韩综合一区二区| 色婷婷综合久久| 日韩高清一区在线| 久久色视频免费观看| 成人理论电影网| 亚洲最快最全在线视频| 欧美一区二区久久| 国产成人免费9x9x人网站视频| 国产精品久线观看视频| 欧美日韩精品系列| 精品一区二区三区欧美| 欧美国产日韩在线观看| 在线看不卡av| 国产在线精品一区二区夜色| 中文字幕在线不卡国产视频| 欧美日精品一区视频| 黄一区二区三区| 一区二区三区在线视频免费观看| 69堂精品视频| 99re成人精品视频| 日韩电影一二三区| 中文字幕一区二区三区在线播放| 欧美日韩高清影院| 国产成人自拍网| 亚洲18色成人| 国产精品麻豆网站| 欧美大片在线观看| 在线观看成人免费视频| 狠狠色综合日日| 一级日本不卡的影视| 国产欧美精品国产国产专区| 欧美精品在线观看播放| jlzzjlzz亚洲日本少妇| 精品亚洲欧美一区| 亚洲午夜电影在线观看| 一区在线中文字幕| 精品福利一区二区三区| 欧美日韩免费观看一区二区三区 | 日韩写真欧美这视频| 99re这里都是精品| 国产成人精品一区二区三区四区| 三级在线观看一区二区| 日本不卡不码高清免费观看| 亚洲一区二区三区在线看| 国产精品午夜电影| 国产日韩欧美综合一区| 欧美v国产在线一区二区三区| 欧美日韩国产系列| 91麻豆123| 91视视频在线直接观看在线看网页在线看| 国产一区二区免费视频| 天天影视网天天综合色在线播放| 亚洲香肠在线观看| 亚洲欧美日韩在线播放| 国产精品美日韩| 欧美激情在线一区二区三区| 久久一区二区三区四区| 欧美mv日韩mv国产| 久久综合成人精品亚洲另类欧美| 日韩免费高清电影| 精品毛片乱码1区2区3区| 欧美一区在线视频| 欧美一级片在线观看| 3d成人动漫网站| 欧美一区二区黄| 欧美精品日韩一区| 欧美亚洲综合另类| 777亚洲妇女| 欧美一区二区精品久久911| 日韩欧美国产综合| 精品久久一区二区| 国产午夜久久久久| 亚洲国产精品黑人久久久| 欧美国产一区视频在线观看| 中文字幕成人在线观看| 国产精品―色哟哟| 亚洲四区在线观看| 午夜欧美2019年伦理| 蜜臀久久久99精品久久久久久| 蜜臀久久久99精品久久久久久| 激情伊人五月天久久综合| 国产最新精品免费| jiyouzz国产精品久久| 色婷婷精品久久二区二区蜜臂av | 久久精工是国产品牌吗| 国产一区视频导航| 99久久99久久精品国产片果冻| 欧美视频一区二区三区在线观看| 884aa四虎影成人精品一区| 久久久精品免费免费| 国产精品久久久久7777按摩| 亚洲国产cao| 国产精品中文有码| 欧美综合天天夜夜久久| 精品国产一区二区三区忘忧草| 国产精品进线69影院| 三级影片在线观看欧美日韩一区二区| 蜜桃精品在线观看| 色婷婷综合久久久中文字幕| 日韩区在线观看| 亚洲欧美日韩国产手机在线| 免费欧美高清视频| 99这里都是精品| 精品国产91久久久久久久妲己| 亚洲精品国产精华液| 国产精品亚洲视频| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲综合丁香婷婷六月香| 黄色资源网久久资源365| 在线观看日韩一区| 国产欧美日韩久久|