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

📄 cmd.c

📁 瑞萨单片机开发软代码.非常实用小巧的平台,很多应用都可以在上面实现.
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "sci.h"
#include "private_cmd.h"
//extern const unsigned short pic[128*128];
//extern const unsigned short pic1[128*128];
//extern const unsigned short pic2[128*128];
//extern const unsigned short pic3[128*128];
//extern const unsigned short pic4[128*128];
//extern const unsigned short pic5[128*128];
//extern const unsigned short pic6[128*128];
//extern const unsigned short pic7[128*128];
//extern const unsigned short pic8[128*128];

extern void WaitTime( unsigned short ms);
void ClearDisp();
void ShowPicture( int fileID, unsigned short LcdWidth, unsigned short LcdHeight );
extern unsigned char g_filecnt, g_FileID,rcvdata;

extern unsigned short* GetImgBuf( int ImgID );
extern int IsExistImgFile( int FileID, unsigned long *FileSize,unsigned short *wWidth, unsigned short *wHeight );
void ShowDemoPicture( unsigned short* buf, int lcd_width, int lcd_height, int img_width, int img_height, int other_color );
void DisplayPic(unsigned char p);
void SpeedTest(unsigned short timems);
unsigned short Rate=2,contrast=56;
unsigned char EvRcv;
unsigned char target_gray;
unsigned short vr;
unsigned short lg_mode;
extern unsigned char debug;  
void Receive(void)
{
	unsigned char datacomm[6],datarecv[6];
	unsigned char count=0,datahand;
	datahand=MACHINECOMM_RET;
	datacomm[0]=MACHINECOMM_DATAHEAD;
	datacomm[5]=MACHINECOMM_DATAEND;
	datacomm[1]='w';
	datacomm[2]='o';
	datacomm[3]='r';
	datacomm[4]='k';
	while(1)
	{
		if(EvRcv)//如果接收到主机端发送过来的握手信号
		{
			if(rcvdata==MACHINECOMM_OK)
			{
			}	//指示灯闪烁		
			EvRcv=FALSE;
			datarecv[0]=rcvdata;
			SCI_Char(MACHINECOMM_RET);
            count=1;
			break;//退出等待
		}
		//	SCI_Str( "\nData Send:" );(&datahand,1);//返回一个握手信号
		break;
	}
	for(;;){
	while(1)
	{if(EvRcv){
		datarecv[count]=rcvdata;
		count++;
		EvRcv=FALSE;
	    }
	 if(count==5)break;//如果已经收到六个数据,则认为是收到一个数据包
	}//end WHILE LOOP 接收一个数据包
	//if(datarecv[0]==MACHINECOMM_DATAHEAD&&datarecv[5]==MACHINECOMM_DATAEND)
	//	send(datacomm,6);//如果数据包正确,则返回一个数据包;
	SCI_HexB(datarecv[1]);
	SCI_HexB(datarecv[2]);
	SCI_HexB(datarecv[3]);
	SCI_HexB(datarecv[4]);
	}//END FOR LOOP
}
void lcd_out( unsigned short index, unsigned short db )
{
	BUS_INDEX_16 = (unsigned short)index;
	BUS_DATA_16 = (unsigned short)db;	
}

void data_out(unsigned short set_db)
{
#ifdef DEBUG
	SCI_Str( "\nData Send:" );
	SCI_HexS( tmp );
#endif
	BUS_DATA_16 = (unsigned short)set_db;
}

void index_out(unsigned short index)
{
#ifdef DEBUG
	SCI_Str( "\nIndex Send:" );
	SCI_HexS( index );
#endif
	BUS_INDEX_16 = (unsigned short)index;
}

unsigned short read_index( )
{
	unsigned short data;

	data = BUS_INDEX_16;

#ifdef DEBUG
	SCI_Str( "\nIndex Read:" );
	SCI_HexS( data );
#endif
	return data;
}

unsigned short read_data( )
{
	unsigned short data;

//	unsigned short *	
	data = BUS_DATA_16;
#ifdef DEBUG
	SCI_Str( "\nData Read:" );
	SCI_HexS( data );
#endif
	return data;
}

int init_data[28][2]=
{
{0x00,0x0001}, 
{0x01,0x091B},
{0x02,0x0700},
{0x03,0x7030},
{0x04,0x0000},
{0x05,0x0000},
{0x08,0x0202},
{0x09,0x000F},
{0x40,0x0000},
{0x41,0x0000},
{0x42,0xDB00},
{0x43,0x0000},
{0x44,0xAF00},
{0x45,0xDB00},
{0x07,0x0000},
{0x12,0x0000},
{0x13,0x0000},
{0x11,0x0000}, 
{0x12,0x0000},
{0x13,0x151d},  
{0x10,0x6064},  
{0x0b,0x0400}, 
{0x12,0x0013},
{0x13,0x2d18},  
{0x10,0x0040},  
{0x10,0x6060}, 
{0x07,0x0025},  
{0x07,0x0037}
};

void init_lcd()
{
	unsigned short tmp, i,j;

	PORT.PADDR.BIT.PA0DDR = 1;
	PORT.PADR.BIT.PA0DR = 0;
	WaitTime( 200 );
	PORT.PADR.BIT.PA0DR = 1;
	WaitTime( 150 );

	for( i = 0; i<28 ; i++ )
	{
			WaitTime( 100 );
			lcd_out( init_data[i][0],init_data[i][1] );
	}

}
/*SpeedTest(unsigned short timems)
{
unsigned long i,j,k;
lcd_out(0x0021,0x0000);
lcd_out(0x0044,0xAF00);//176
lcd_out(0x0045,0xDB00);//220
index_out(0x0022);
for(i=0;i<176;i++)
{
	for(j=0;j<220;j++)
	{
	data_out(0xffff);
	}
}
lcd_out(0x0021,0x4f63);
index_out(0x0022);
for(i=0;i<176;i++)
{
	for(j=0;j<220;j++)
	{
	data_out(0xffff);
	}
}

}*/
void init_lcd1()
{
	int i;
	for( i = 0; i<28 ; i++ )
		lcd_out( init_data[i][0],init_data[i][1] );

}

void display_on(void)
{
	index_out( R766_DisplayControl );
	data_out( 0x03 );
	WaitTime( 10 );
}

void display_off(void)
{
	index_out(R766_DisplayControl);
	data_out(0x00);
	WaitTime( 10 );
}


void ALL_ON()
{
	unsigned char i,j;

	init_lcd();

	WaitTime( 10 );

	index_out(0x22);

#if 1
	for(i=0;i<220;i++)
	{
	  	for(j=0;j<176;j++)
	  	{
			data_out(cGREEN);
	  	}
	}
#endif
}


void green_bar()
{
 	unsigned char i,j;
	int gray=0;

	init_lcd1();

	lcd_out(R766_DisplayControl,	0x0000);
	WaitTime( 10 );

	lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS);
	index_out(0x22);

	for(i=1;i<=52;i++)
	{
		gray=96+i*32;

	   	for(j=0;j<128;j++)
	   	{
			data_out(gray);
			data_out(gray);
			data_out(gray);
	   	}
	}

	display_on();
}

void color_bar( unsigned short color )
{
 	unsigned char i,j;
	int gray=0;

	lcd_out(R766_DisplayControl,	0x0000);
	WaitTime( 10 );

	lcd_out(R766_EntryMode, 0x0000|lg_mode);
	lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS );
	lcd_out(R766_RAM_WriteMask, 0x0000);

	index_out(0x22);

	for(i=1;i<160;i++)
	{
	   	for(j=0;j<128;j++)
	   	{
			data_out(color);
			data_out(color);
			data_out(color);
	   	}
	}

	display_on();
}



void send_burst(unsigned char index, unsigned short *data, unsigned short length)
{
	BUS_INDEX_16 = (unsigned short)index;
	while(length != 0){
		BUS_DATA_16 = *data;
		length--;
		data++;
	}
}

void show_picture(unsigned short *p, unsigned short xsize, unsigned short ysize, unsigned short offset)
{
	unsigned short i, x_byte;
		                                                                            
	lcd_out(R766_DisplayControl,	0x0000);
	WaitTime( 10 );

	lcd_out(R766_EntryMode, 0x0000|lg_mode);
	lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS + offset);
	lcd_out(R766_RAM_WriteMask, 0x0000);
	
	x_byte = xsize;             /* xsize/2 -> xsize*/
	for(i=0; i<ysize; i++){
		if(x_byte <= TARGET_X_DOT_SIZE)         
			send_burst(R766_RAM_Data, p, x_byte); 
		else
			send_burst(R766_RAM_Data, p, TARGET_X_DOT_SIZE);

		p += x_byte;                            
		if(xsize < TARGET_X_BYTE_SIZE ){
			if(i >= TARGET_Y_LINE_SIZE)
				lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS - ((i-TARGET_Y_LINE_SIZE)*TARGET_X_BYTE_WIDTH + offset));
			else
				lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS - (i*TARGET_X_BYTE_WIDTH + offset));
		}
	}

	display_on();
}

void send_fill(unsigned char index, unsigned short data, unsigned short length)
{
	BUS_INDEX_16 = (unsigned short)index;
	while(length != 0 ){
		BUS_DATA_16 = data;
		length--;
	}
}

void demo_66766( )
{
//		show_picture(Sky1, 128, 160, 0);
//		WaitTime(2000);
          
//		show_picture(Kirin, 176, 220, 0);
//		ShowDemoPicture( pic1, 176,220, 176, 220, cGREEN );
		WaitTime(2000);
}


void disp_pattern(int pattern)
{
	short i, j, k;
	unsigned short col;

	lcd_out(R766_RAM_WriteMask,	0x0000);

	switch(pattern){
	case 0:				/* all OFF */
		lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS);
		send_fill(R766_RAM_Data, 0x0000, TARGET_X_BYTE_SIZE*TARGET_Y_LINE_SIZE);
		break;
	case 1:				/* all ON */
		lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS);
		send_fill(R766_RAM_Data, 0xFFFF, TARGET_X_BYTE_SIZE*TARGET_Y_LINE_SIZE);
		break;
	case 2:				/* Monochrom Chacker */
		lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS);
		for(i=0; i<TARGET_Y_LINE_SIZE; i++){                                        
		
			if(i==(i/2)*2){
				for(j=0; j<TARGET_X_BYTE_SIZE; j++){
					lcd_out(R766_RAM_Data, cBLACK);
					lcd_out(R766_RAM_Data, cWHITE);
				}
			}
			else{
				for(j=0; j<TARGET_X_BYTE_SIZE; j++){
					lcd_out(R766_RAM_Data, cWHITE);
					lcd_out(R766_RAM_Data, cBLACK);
				}
			}
		}
		break;
	case 3:				/* Color 8 Lines */
		lcd_out(R766_RAM_AddressSet, TARGET_START_ADDRESS);      
		
		send_fill(R766_RAM_Data, cBLACK, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cRED, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cGREEN, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cBLUE, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cYELLOW, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cCYAN, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cMAGENTA, TARGET_X_BYTE_SIZE/2*20);
		send_fill(R766_RAM_Data, cWHITE, TARGET_X_BYTE_SIZE/2*20);                            
		break;
	case 4:				/* Color 8 Lines Checker */
		for(i=0; i<TARGET_Y_DISP_BOTTOM/16; i++){
			if(i==(i/2)*2){
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cRED);
					lcd_out(R766_RAM_Data, cWHITE);
				}
			}
			else{
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cWHITE);
					lcd_out(R766_RAM_Data, cRED);
				}
			}
		}
		 
		for(i=0; i<TARGET_Y_DISP_BOTTOM/16; i++){
				if(i==(i/2)*2){
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cRED);
					lcd_out(R766_RAM_Data, cGREEN);
				}
			}
			else{
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cGREEN);
					lcd_out(R766_RAM_Data, cRED);
				}
			}
		}
		for(i=0; i<TARGET_Y_DISP_BOTTOM/16; i++){
				if(i==(i/2)*2){
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cBLUE);
					lcd_out(R766_RAM_Data, cGREEN);
				}
			}
			else{
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cGREEN);
					lcd_out(R766_RAM_Data, cBLUE);
				}
			}
		}
		for(i=0; i<TARGET_Y_DISP_BOTTOM/16; i++){
				if(i==(i/2)*2){
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cBLUE);
					lcd_out(R766_RAM_Data, cYELLOW);
				}
			}
			else{
				for(j=0; j<TARGET_X_BYTE_SIZE/2; j++){
					lcd_out(R766_RAM_Data, cYELLOW);
					lcd_out(R766_RAM_Data, cBLUE);
				}
			}
		}

⌨️ 快捷键说明

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