コード例 #1
0
ファイル: oled.c プロジェクト: fisherofearth/Freescale2012
void oled_ClearScreen(void){
    unsigned char x,y;
   
	for(y=0;y<12;y++)
	{ 
		oled_SetXY(0,y);
		for(x=0;x<128;x++)
		{
			oled_WriteData(0x00);
			oled_WriteData(0x00);
		}
	}		      	
}
コード例 #2
0
ファイル: oled.c プロジェクト: sunkaokao/test
void oled_test(uint8_t fd)
{
	uint8_t i, s;
	s = 'a' - 32;
	oled_SetPos(fd, 0, 1);
	for(i = 0; i < 8; i++)
	{
		oled_WriteData(fd, STR8X16[s][i]);
	}
	oled_SetPos(fd, 0, 0);
	for(i = 8; i < 16; i++)
	{
		oled_WriteData(fd, STR8X16[s][i]);
	}
}
コード例 #3
0
ファイル: oled.c プロジェクト: sunkaokao/test
void oled_DisChar(uint8_t fd, uint8_t x, uint8_t y, uint8_t c, FONT_SIZE size)
{
	uint8_t i, s;
	oled_SetPos(fd, x, y);
	
	s = c - 32;
	if(size == Big)
	{
		for(i = 0; i < 16; i++)
		{
			oled_WriteData(fd, STR16X16[s][i]);				//字母的上半部分
		}
		y--;
		oled_SetPos(fd, x, y);
		for(i = 16; i < 32; i++)								//字母的下半部分
		{
			oled_WriteData(fd, STR16X16[s][i]);
		}
	}
	else if(size == Mid)
	{
		for(i = 0; i < 8; i++)
		{
			oled_WriteData(fd, STR8X16[s][i]);				//字母的上半部分
		}
		y--;
		oled_SetPos(fd, x, y);
		for(i = 8; i < 16; i++)								//字母的下半部分
		{
			oled_WriteData(fd, STR8X16[s][i]);
		}	

	}
	else if(size == Small)
	{
		for(i = 0; i < 6; i++)
		{
			oled_WriteData(fd, STR6X8[s][i]);
		}
	}
}
コード例 #4
0
ファイル: oled.c プロジェクト: sunkaokao/test
void oled_Clear(uint8_t fd)
{
	uint8_t page, column;
	for(page = 0; page < 8; page++)
	{
		oled_SetPos(fd, 0, page);
		for(column = 0; column < 128; column++)
		{
			oled_WriteData(fd, 0);
		}
	}
}
コード例 #5
0
ファイル: oled.c プロジェクト: fisherofearth/Freescale2012
void oled_WriteASSIC(uchar X, uchar Y, char *s, char inversion) {
	unsigned char i;
	unsigned char j = 0;
	
	while (*s != 0) {
		oled_SetXY((X + (j * 6)), Y);
		for (i = 0; i < 6; i++) {
			if(inversion == 0)
				oled_WriteData(assic_6x8[(*s - 32)][i]);
			else
				oled_WriteData_inversion(assic_6x8[(*s - 32)][i]);
		}
		s++;
		j++;
	}
}
コード例 #6
0
ファイル: oled.c プロジェクト: fisherofearth/Freescale2012
void oled_DisplayUnsignedNum(uchar x, uchar y, char close, int num, int length, char inversion) {
	int i, j;
	uchar len;
	int tmp, tmp2;

	len = GetLength(num);
	
	
	tmp = length - len;
	if(close == oled_closeLeft)
	{
		oled_WriteASSIC((x + (6 * len)), y ,space[tmp],oled_uninversion);
	}
	else
	{
		oled_WriteASSIC((x - (6 * length)), y ,space[tmp],oled_uninversion);
	}
	
	//set start place
	oled_SetXY(x - (close * (6 * len)), y);

	tmp2 = 10000;
	for (i = 0; i < (5 - len); i++)
		tmp2 /= 10;

	for (i = 0; i < len; i++) {

		tmp = (num / tmp2) % 10;
		for (j = 0; j < 6; j++) {
			if (inversion == 0)
				oled_WriteData(assic_6x8[tmp + 16][j]);
			else
				oled_WriteData_inversion(assic_6x8[tmp + 16][j]);
		}
		tmp2 /= 10;
	}
}