示例#1
0
文件: oled.c 项目: DATIEPUZI/Test
//显示一个字符号串
void OLED_ShowString(u8 x,u8 y,u8 *chr)
{
	unsigned char j=0;
	while (chr[j]!='\0')
	{		OLED_ShowChar(x,y,chr[j]);
			x+=8;
		if(x>120){x=0;y+=2;}
			j++;
	}
}
示例#2
0
文件: oled.c 项目: charliexp/FireBLE
//显示2个数字
//x,y :起点坐标	 
//len :数字的位数
//size:字体大小
//mode:模式	0,填充模式;1,叠加模式
//num:数值(0~4294967295);	 		  
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size)
{         	
	uint8_t t,temp;
	uint8_t enshow=0;						   
	for(t=0;t<len;t++)
	{
		temp=(num/oled_pow(10,len-t-1))%10;
		if(enshow==0&&t<(len-1))
		{
			if(temp==0)
			{
				OLED_ShowChar(x+(size/2)*t,y,' ');
				continue;
			}else enshow=1; 
		 	 
		}
	 	OLED_ShowChar(x+(size/2)*t,y,temp+'0'); 
	}
} 
示例#3
0
文件: oled.c 项目: DATIEPUZI/Test
//显示2个数字
//x,y :起点坐标	 
//len :数字的位数
//size:字体大小
//mode:模式	0,填充模式;1,叠加模式
//num:数值(0~4294967295);	 		  
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)
{         	
	u8 t,temp;
	u8 enshow=0;						   
	for(t=0;t<len;t++)
	{
		temp=(num/oled_pow(10,len-t-1))%10;
		if(enshow==0&&t<(len-1))
		{
			if(temp==0)
			{
				OLED_ShowChar(x+(size2/2)*t,y,' ');
				continue;
			}else enshow=1; 
		 	 
		}
	 	OLED_ShowChar(x+(size2/2)*t,y,temp+'0'); 
	}
} 
示例#4
0
void osd_test(void)
{	u8 t;
		OLED_Init();			//3?¨º??¡¥OLED  
		OLED_Clear()  	; 
	
		t=' ';
		OLED_ShowCHinese(0,0,0);//?D
				OLED_ShowCHinese(18,0,1);//?¡ã
		OLED_ShowCHinese(36,0,2);//?¡ã
		OLED_ShowCHinese(54,0,3);//¦Ì?
		OLED_ShowCHinese(72,0,4);//¡Á¨®
		OLED_ShowCHinese(90,0,5);//??
		OLED_ShowCHinese(108,0,6);//??
	while(1) 
	{		
		OLED_Clear();
		OLED_ShowCHinese(0,0,0);//?D
		OLED_ShowCHinese(18,0,1);//?¡ã
		OLED_ShowCHinese(36,0,2);//?¡ã
		OLED_ShowCHinese(54,0,3);//¦Ì?
		OLED_ShowCHinese(72,0,4);//¡Á¨®
		OLED_ShowCHinese(90,0,5);//??
		OLED_ShowCHinese(108,0,6);//??
		OLED_ShowString(6,3,"0.96' OLED TEST",16);

				OLED_ShowString(6,4,"0.96' OLED TEST",16);
		OLED_ShowString(0,5,"0.96' OLED TEST",16);

		OLED_ShowString(0,6,"0.96' OLED TEST",16);
		OLED_ShowString(1,7,"0.96' OLED TEST",16);

		OLED_ShowString(6,3,"0.96' OLED TEST",16);

		//OLED_ShowString(8,2,"ZHONGJINGYUAN");  
	 //	OLED_ShowString(20,4,"2014/05/01");  
		OLED_ShowString(0,6,"ASCII:",16);  
		OLED_ShowString(63,6,"CODE:",16);  
		OLED_ShowChar(48,6,t,16);//??¨º?ASCII¡Á?¡¤?	   
		t++;
		if(t>'~')t=' ';
		OLED_ShowNum(103,6,t,3,16);//??¨º?ASCII¡Á?¡¤?¦Ì????¦Ì 	
		rt_thread_delay(1000*3);


		OLED_DrawBMP(0,0,128,8,BMP1);  //¨ª?????¨º?(¨ª?????¨º?¨¦¡Â¨®?¡ê?¨¦¨²3¨¦¦Ì?¡Á?¡À¨ª??¡ä¨®¡ê??¨¢??¨®????¨¤????¡ê?FLASH????8K¨°???¨¦¡Â¨®?)
		rt_thread_delay(1000*3);

		OLED_DrawBMP(0,0,128,8,BMP1);
		rt_thread_delay(1000*3);


	}	
	
}
示例#5
0
文件: oled.c 项目: CorBiNO/Atomwear
void oled_update_temp()
{
	#define OFFSET1	16
	short temp = get_temperature();
	
	OLED_ShowNum(OFFSET1, 0, temp/10, 2, 32);
	OLED_ShowChar(OFFSET1+8*2, 0, '.', 32, 1);
	OLED_ShowNum(OFFSET1+8*3, 0, temp%10, 1, 32);
	
	OLED_Refresh_Gram();
}
示例#6
0
文件: oled.c 项目: idaohang/v1000
//显示字符串
//x,y:起点坐标  
//*p:字符串起始地址
//用16字体
void OLED_ShowString(u8 x,u8 y,const u8 *p)
{
#define MAX_CHAR_POSX 122
#define MAX_CHAR_POSY 58          
    while(*p!='\0')
    {       
        if(x>MAX_CHAR_POSX){x=0;y+=16;}
        if(y>MAX_CHAR_POSY){y=x=0;OLED_Clear();}
        OLED_ShowChar(x,y,*p,16,1);	 
        x+=8;
        p++;
    }  
}	   
示例#7
0
/*
*@功能:显示一个字符号串
*/
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr)
{
	uint8_t j=0;
	while (chr[j]!='\0')
	{		
		OLED_ShowChar(x,y,chr[j]);
		x+=8;
		if(x>120)
		{
			x=0;
			y+=2;		//表示换到下行
		}
		j++;
	}
}
示例#8
0
void menu_Run()
{
	switch(menu_Mode)
	{
		case show_time_1:
			OLED_Clear(0,0,127,7);
			OLED_ShowString(16,0,":");
			OLED_ShowString(40,0,":");
		  menu_Showtime(); 
		  menu_Mode = show_time;
		break;
		case show_time : 
			menu_Showtime(); 		
		break;
		case show_sen_1:
			OLED_Clear(0,0,127,7);
			OLED_ShowString(16+24,0,"cm");	
			OLED_ShowString(0,0,"H:");
			OLED_ShowString(0,2,"P:");
			OLED_ShowString(0,4,"R:");
			OLED_ShowString(0,6,"Y:");
		  menu_Showsen();
			menu_Mode = show_sen;
		break;
		case show_sen : 			
			menu_Showsen();
		break;
		case set_sen_1:
			OLED_ShowString(0,0,"S_Height:");
			OLED_ShowString(0,2,"P_offset:");
			OLED_ShowString(0,4,"R_offset:");
			OLED_ShowString(0,6,"Y_offset:");
			OLED_ShowNum(72,0,Expect.hight,3,18,0);
			OLED_ShowFloat(72,2,sen.angle_test_offset.pitch - 10.00f,2);
		  OLED_ShowFloat(72,4,sen.angle_test_offset.roll - 10.00f,2);
		  OLED_ShowFloat(72,6,sen.angle_test_offset.yaw - 10.00f,2);
			OLED_ShowChar(120,0,'S');
			menu_Mode = set_sen;
		break;
		case set_sen:
			menu_Setsen();
		menu_Mode = show_time_1;
		break;
		default:
		break;
	}		
}
/////////////////////////////////////////////////////////////////////
//显示字符串
//x,y:起点坐标  
//*p:字符串起始地址
//用16字体
void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p)
{
#define MAX_CHAR_POSX 122
//#define MAX_CHAR_POSY 58 
#define MAX_CHAR_POSY 64	
    while(*p!='\0')
    {       
      if(x>MAX_CHAR_POSX)
       {
			 x=0;y+=16;
			 }
      if(y>MAX_CHAR_POSY)
       {
			  y=x=0;OLED_Clear();
			 }
       OLED_ShowChar(x,y,*p,16,1);	 
        x+=8;
        p++;
     }  
}	   
示例#10
0
文件: oled.c 项目: hujg/mico_v2.2.0
//显示一个字符号串
void OLED_ShowString(u8 x,u8 y,u8 *chr)
{
  unsigned char j=0;
  while (chr[j]!='\0')
  {	
    // add for CR/LF
    if( ('\r' == chr[j]) && ('\n' == chr[j+1]) ){  // user set next line
      x = 0;
      y += 2;
      j += 2;
    }
    else{
      OLED_ShowChar(x,y,chr[j]);
      x += 8;
      if( (x>120) && (('\r' != chr[j+1]) || ('\n' != chr[j+2])) ){  // auto next line
        x = 0;
        y += 2;
      }
      j++;
    }
  }
}
示例#11
0
文件: oled.c 项目: CorBiNO/Atomwear
void oled_default_mode()
{
	#define OFFSET	0
	static bool flag = false;
	calendar temp_time = get_standard_time();
	
	OLED_ShowNum(OFFSET, 0, temp_time.hour, 2, 32);
	if(temp_time.hour < 10) 	OLED_ShowNum(OFFSET, 0, 0, 1, 32);
	OLED_ShowChar(OFFSET+8*2, 0, ':', 32, 1);
	OLED_ShowNum(OFFSET+8*3, 0, temp_time.minute, 2, 32);
	if(temp_time.minute < 10) 	OLED_ShowNum(OFFSET+8*3, 0, 0, 1, 32);
	OLED_ShowChar(OFFSET+8*5, 0, ':', 32, 1);
	OLED_ShowNum(OFFSET+8*6, 0, temp_time.second, 2, 32);
	if(temp_time.second < 10) 	OLED_ShowNum(OFFSET+8*6, 0, 0, 1, 32);
	
	
	if(get_time_mode() == MINUTE_MODE)
	{
		if(flag)
		{
			OLED_ShowChar(OFFSET+8*5, 0, ' ', 32, 1);
			flag = false;
		}
		else
		{			
			OLED_ShowChar(OFFSET+8*5, 0, ':', 32, 1);
			flag = true;
		}
	}
	if(get_time_mode() == HOUR_MODE)
	{
		if(flag)
		{
			OLED_ShowChar(OFFSET+8*2, 0, ' ', 32, 1);
			flag = false;
		}
		else
		{
			OLED_ShowChar(OFFSET+8*2, 0, ':', 32, 1);			
			flag = true;
		}
	}
	
	OLED_Refresh_Gram();
}
示例#12
0
void menu_Setsen()
{
	u8 position = 1;
	while(1)
	{
		switch(Key_Scan())
		{
			case 1:
				OLED_Clear(120,position*2-2,127,position*2-2+1);
				position++;
				if(position>4)
					position = 1;
				OLED_ShowChar(120,position*2-2,'S');
			break;
			case 2:
				OLED_Clear(120,position*2-2,127,position*2-2+1);
				position--;
			  if(position<1)
					position = 4;
				OLED_ShowChar(120,position*2-2,'S');
			break;
			case 3:
				if(position==1)
				{
					Expect.hight++;
				}
				else if(position==2)
				{
					sen.angle_test_offset.pitch+=0.01f;
				}
				else if(position==3)
				{
					sen.angle_test_offset.roll+=0.01f;
				}
				else if(position==4)
				{
					sen.angle_test_offset.yaw+=0.01f;
				}
			break;
			case 4:
				if(position==1)
				{
					Expect.hight--;
				}
				else if(position==2)
				{
					sen.angle_test_offset.pitch-=0.01f;
				}
				else if(position==3)
				{
					sen.angle_test_offset.roll-=0.01f;
				}
				else if(position==4)
				{
					sen.angle_test_offset.yaw-=0.01f;
				}
			break;
			case 5:
				
			break;
			case 6:
				goto ret;
			break;
			default:
				break;
		}
		
		OLED_ShowNum(72,0,Expect.hight,3,18,0);
		OLED_ShowFloat(72,2,sen.angle_test_offset.pitch - 10.00f,2);
		OLED_ShowFloat(72,4,sen.angle_test_offset.roll - 10.00f,2);
		OLED_ShowFloat(72,6,sen.angle_test_offset.yaw - 10.00f,2);	
	}
	ret: ;
		
}