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

📄 page6_page10.c

📁 s3c44b0 4色液晶驱动,显示数据,汉字图形功能
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "44b.h"
#include "def.h"
#include "GUI.h"
#include "option.h"
#include "utils.h"

#include "lcd.h"
#include "lcdlib.h"
#include "glib.h"
#include "slib.h"
#include "..\include\math.h"

#include <stdarg.h>
struct RXDATA *pRXdata=&SaveD1.RXd;
struct TXDATA TTXXddB,*pTXdata=&SaveD1.TXd;
U32 CunChuNo1;
void StrCpy(U8 *p,U8 *s,U16 len)
{	U8 i=0;
	for (i=0;i<len;i++)
	{
		*s++=*p++;
	}
}


void Data_ReFlash(StructInputData *p,U16 PageN)
{		
		U16 i,kk;
		U32 j;
		StructInputData *P_Load;
		P_Load=p;
		PageN=pTXdata->TXkey.nPageNo;
		if (keyd2!=0xff)
		{
			switch(keyd2)
			{
				case KEY_UP:
				
					if (pTXdata->TXkey.nCursorPreLine!=0)pTXdata->TXkey.nCursorPreLine--;
					else pTXdata->TXkey.nCursorPreLine=pTXdata->TXkey.nCursorMaxLine-1;
					p=P_Load;
					p+=pTXdata->TXkey.nCursorOldLine;
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					p=P_Load;
					p+=pTXdata->TXkey.nCursorPreLine;
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;
				break;
				case KEY_DOWN:
					if (pTXdata->TXkey.nCursorPreLine!=(pTXdata->TXkey.nCursorMaxLine-1))pTXdata->TXkey.nCursorPreLine++;
					else pTXdata->TXkey.nCursorPreLine=0;
					p=P_Load;
					p+=pTXdata->TXkey.nCursorOldLine;
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					p=P_Load;
					p+=pTXdata->TXkey.nCursorPreLine;
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;
				break;
				case KEY_OK:
					keyd2=0xff;
					p=P_Load;
					p+=pTXdata->TXkey.nCursorOldLine;
					if (pTXdata->TXkey.nCursorOldLine!=pTXdata->TXkey.nCursorPreLine)
					{
						Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
						p=P_Load;
						p+=pTXdata->TXkey.nCursorPreLine;
						Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					}
					else {p=P_Load;	p+=pTXdata->TXkey.nCursorOldLine;}
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray3);
					Delay(200);
					switch(p->nDataType)
					{
						case TypePage:
							pTXdata->TXkey.nPageNo=p->nPageNo;
							pTXdata->xiangbie=p->xiangbie;
							if (PageN==p->nPageNo)
							{
									Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray3);
									Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
							}
							pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;							
							return ;//p->nPageNo;
						break;
						case TypeSave:
					 		RtcGetTime(&SaveD1.Save_time);
							if (NumberSave.CunChuNo<1000){NF_Data_SaveD1(NumberSave.CunChuNo,(U8 *)&SaveD1);if(NumberSave.CunChuNoMAX<999)NumberSave.CunChuNoMAX++;}
							else {NumberSave.CunChuNo=0;NF_Data_SaveD1(0,(U8 *)&SaveD1);NumberSave.CunChuNoMAX=999;}
							NumberSave.CunChuNo++;
							if (NumberSave.CunChuNo>=1000){NumberSave.CunChuNo=0;NumberSave.CunChuNoMAX=999;}
							NF_Data_SaveNum(1010);
							if (NumberSave.CunChuNo>0)CunChuNo1=NumberSave.CunChuNo-1;
							else if (NumberSave.CunChuNo==0 && NumberSave.CunChuNoMAX==0)CunChuNo1=0;
							else if (NumberSave.CunChuNo==0 && NumberSave.CunChuNoMAX!=0)CunChuNo1=NumberSave.CunChuNoMAX;
							if (PageN==p->nPageNo)
							{
									Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray3);
									Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
							}
							pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;							
							return ;//p->nPageNo;
						break;
						case  TypePageDn:
							if (CunChuNo1<NumberSave.CunChuNoMAX){CunChuNo1++;NF_Data_GetD1(CunChuNo1,(U8 *)&GetD1);}
							else {CunChuNo1=0; NF_Data_GetD1(CunChuNo1,(U8 *)&GetD1);}
							pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;							
							pTXdata->TXkey.Addr_Page=GetD1.TXd.TXkey.Addr_Page;
							change=1;
						break;
						case TypePageUp:
							if (CunChuNo1==0)
							{
								CunChuNo1=NumberSave.CunChuNoMAX;NF_Data_GetD1(CunChuNo1,(U8 *)&GetD1);
							}
							else{CunChuNo1--;NF_Data_GetD1(CunChuNo1,(U8 *)&GetD1);}
							pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;							
							pTXdata->TXkey.Addr_Page=GetD1.TXd.TXkey.Addr_Page;
							change=1;
						break;
						case TypeDel:
							if (CunChuNo1<NumberSave.CunChuNoMAX)
							{
								for (j=CunChuNo1;j<NumberSave.CunChuNoMAX;j++)
								{
									NF_Data_GetD1(++j,(U8 *)&GetD1);
									NF_Data_SaveD1(--j,(U8 *)&GetD1);
								}
							}
							else if (CunChuNo1>0) CunChuNo1--;
							if (NumberSave.CunChuNoMAX>0){NumberSave.CunChuNoMAX--;}
							if (NumberSave.CunChuNo>0){NumberSave.CunChuNo--;}
							else if (NumberSave.CunChuNo==0)NumberSave.CunChuNo=NumberSave.CunChuNoMAX;
							NF_Data_SaveNum(1010);
							NF_Data_GetD1(CunChuNo1,(U8 *)&GetD1);
							pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;							
							pTXdata->TXkey.Addr_Page=GetD1.TXd.TXkey.Addr_Page;
							change=1;
						break;
						case TypeDelAll:
							for (j=0;j<=NumberSave.CunChuNoMAX;j++)
							{
								i =NFEraseBlock(j);
							}
							NumberSave.CunChuNoMAX=0;
							NumberSave.CunChuNo=0;
							NF_Data_SaveNum(1010);
							CunChuNo1=NumberSave.CunChuNo;
							pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;							
							pTXdata->TXkey.Addr_Page=0;
							change=1;
						break;
						case TypeStr:
							GetStr(p);	
							Lcd_G4_Bmp_All(pTXdata->TXkey.Addr_Page,InvertOFF ) ;
						break;
						case TypeFloat:
							GetFloat(p);	
							Lcd_G4_Bmp_All(pTXdata->TXkey.Addr_Page,InvertOFF ) ;
						break;
						case TypeSwitch:
							GetSwitch(p);
							Lcd_G4_Bmp_All(pTXdata->TXkey.Addr_Page,InvertOFF ) ;
						break;
						
						default:
							Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray3);
						break;
					}
					Lcd_G4_Bmp_Rev(p->x,p->y,p->w,p->h,Gray1);
					pTXdata->TXkey.nCursorOldLine=pTXdata->TXkey.nCursorPreLine;
					NF_Data_SaveTXd(0);
				break;
				case KEY_ESC:
					keyd2=0xff;
					pTXdata->TXkey.nPageNo=pTXdata->TXkey.nPageFatuer;
					return ;
				break;
				default:break;
			}
			keyd2=0xff;
		}
		for (i=0,p=P_Load;i<pTXdata->TXkey.nCursorMaxLine;i++,p++)	
		{
					switch(p->nDataType)
					{
						case TypeStr:
							OutStr(p->Udata.U8_data,p->datax,p->datay,InvertOFF,Gray3,p->nHigh,p->nInputStrLen);
						break;
						case TypeFloat:
							OutFloat(p->Udata.F_data,p->datax,p->datay,InvertOFF,Gray3,p->nHigh,p->nInputStrLen);
						break;
						case TypeSwitch:
							OutStr(&p->Udata.SwitchData.Data[*p->Udata.SwitchData.Number][0],p->datax,p->datay,InvertOFF,Gray3,p->Udata.SwitchData.High,p->Udata.SwitchData.len);
						break;
						default:
						break;
					}
					if ((Touch_X > p->x)&&(Touch_X < (p->x + p->w) )&&(Touch_Y > p->y)&&(Touch_Y < (p->y+p->h)))
					{
						p=P_Load+i;
						pTXdata->TXkey.nCursorPreLine=i;
						pTXdata->TXkey.nSerial++;
						pTXdata->TXkey.nkey=KEY_OK;
						p=P_Load;
						p+=pTXdata->TXkey.nCursorPreLine;
						keyd2=KEY_OK;
						Touch_X=0;Touch_Y=0;
					}
					
		
		}
}

void Save_Fresh(StructInputData *p,U16 len)
{
	int i;
		for (i=0;i<len;i++,p++)	
		{
					switch(p->nDataType)
					{
						case TypeStr:
							OutStr(p->Udata.U8_data,p->datax,p->datay,InvertOFF,Gray3,p->nHigh,p->nInputStrLen);
						break;
						case TypeFloat:
							OutFloat(p->Udata.F_data,p->datax,p->datay,InvertOFF,Gray3,p->nHigh,p->nInputStrLen);
						break;
						case TypeSwitch:
							OutStr(&p->Udata.SwitchData.Data[*p->Udata.SwitchData.Number][0],p->datax,p->datay,InvertOFF,Gray3,p->Udata.SwitchData.High,p->Udata.SwitchData.len);
						break;
						default:
						break;
					}
		}
}

void Re_Flash(StructInputData *p)
{
					switch(p->nDataType)
					{
						case TypeStr:
							OutStr(p->Udata.U8_data,p->datax,p->datay,InvertOFF,Gray3,p->nHigh,p->nInputStrLen);
						break;
						case TypeFloat:
							OutFloat(p->Udata.F_data,p->datax,p->datay,InvertOFF,Gray3,p->nHigh,p->nInputStrLen);
						break;
						case TypeSwitch:
							OutStr(&p->Udata.SwitchData.Data[*p->Udata.SwitchData.Number][0],p->datax,p->datay,InvertOFF,Gray3,p->Udata.SwitchData.High,p->Udata.SwitchData.len);
						break;
						default:
						break;
					}
}
U8 Page6(void)
{
	int i=0,Kk,ttt,xx,yy;
	StructInputData INputdata[3],*P_Input=&INputdata[0];
	StructInputData XiangBie[2],*P_P=&XiangBie[0];
	pTXdata->ptctyz=_Y;
	
	
	P_Input->x=104;P_Input->y=47;P_Input->w=114;P_Input->h=28;P_Input->nDataType=TypeStr;P_Input->nInputStrLen=0x800;
	P_Input->Udata.U8_data=&pTXdata->CeShiRenY[0];
	P_Input++;
	P_Input->x=312;P_Input->y=47;P_Input->w=114;P_Input->h=28;P_Input->nDataType=TypeStr;P_Input->nInputStrLen=0x800;
	P_Input->Udata.U8_data=&pTXdata->CeShiXL[0];
	P_Input++;
	P_Input->x=469;P_Input->y=412;P_Input->w=119;P_Input->h=36;P_Input->nDataType=TypePage;P_Input->nPageNo=2;

	pTXdata->TXkey.nCursorPreLine=0;
	pTXdata->TXkey.nCursorOldLine=0;
	pTXdata->TXkey.nCursorMaxLine=3;
	pTXdata->TXkey.nCursor=0;
	pTXdata->TXkey.nTimeDisConst=1;
	pTXdata->TXkey.nPageFatuer=2;
	pTXdata->TXkey.nPageNo=6;
	pTXdata->TXkey.Addr_Page=acpage6;
	for (i=0,P_Input=INputdata;i<pTXdata->TXkey.nCursorMaxLine;i++,P_Input++)	
	{
		P_Input->datax=P_Input->x+5;
		P_Input->datay=P_Input->y+2;
		P_Input->nHigh=HIGH24;
	}

	P_Input=INputdata;

	Lcd_G4_Bmp_All(pTXdata->TXkey.Addr_Page,InvertOFF ) ;
	Lcd_G4_Bmp_Rev(P_Input->x,P_Input->y,P_Input->w,P_Input->h,Gray1);
	Touch_X=0;	Touch_Y=0;
	keyd2=0xff;
	

⌨️ 快捷键说明

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