コード例 #1
0
void oled_reset(void)
{
	// repeat 2 times
	write_bit(RES_n, 0);		//clr(CTRL, RES_n); //RES_n = 0;
	oled_delay(DELAY_CAL2);
	write_bit(RES_n, 1);		//set(CTRL, RES_n); //RES_n = 1;
	oled_delay(DELAY_CAL2);
	write_bit(RES_n, 0);		//clr(CTRL, RES_n); //RES_n = 0;
	oled_delay(DELAY_CAL2);
	write_bit(RES_n, 1);		//set(CTRL, RES_n); //RES_n = 1;
	oled_delay(DELAY_CAL2);
}
コード例 #2
0
void oled_write_cmd(unsigned char command)
{
	write_bit(CS_n, 0);			//clr(CTRL, CS_n); //CS_n =0;
	oled_delay(DELAY_CAL);	
	write_bit(DC_n, 0);			//clr(CTRL, DC_n); //DC_n =0;
	oled_delay(DELAY_CAL);	

	unsigned char i;
	for(i = 0; i<8; i++)
	{
		unsigned char tmp;
		write_bit(SCLK, 0);		//clr(DATA, SCLK); // low
		oled_delay(DELAY_CAL);	
		
		tmp = check(command, (7-i));
		if(tmp != 0)
		{
			write_bit(SDIN, 1);		//set(DATA, SDIN); // data
			oled_delay(DELAY_CAL);	
			write_bit(SCLK, 1);		//set(DATA, SCLK); // hi
			oled_delay(DELAY_CAL);	
		}
				
		if(tmp == 0)
		{
			write_bit(SDIN, 0);		//clr(DATA, SDIN); // data
			oled_delay(DELAY_CAL);	
			write_bit(SCLK, 1);		//set(DATA, SCLK); // hi
			oled_delay(DELAY_CAL);	
		}
	}
	oled_delay(DELAY_CAL);	
	write_bit(SCLK, 0);				//set(CTRL, CS_n); //CS_n=1;
}
コード例 #3
0
ファイル: oled.c プロジェクト: fisherofearth/Freescale2012
void oled_WriteCMD(unsigned char dat){
	
	oled_PORT_CS &= ~oled_BIT_CS;
	oled_delay (10);
	oled_PORT_DC &= ~oled_BIT_DC;	//INSTRUCTION
	oled_delay (10);
	
	oled_SwitchSID(((dat & 0x80) == 0x80)); oled_SendClock(); // send MSB
	oled_SwitchSID(((dat & 0x40) == 0x40)); oled_SendClock();
	oled_SwitchSID(((dat & 0x20) == 0x20)); oled_SendClock();
	oled_SwitchSID(((dat & 0x10) == 0x10)); oled_SendClock();
	oled_SwitchSID(((dat & 0x08) == 0x08)); oled_SendClock();
	oled_SwitchSID(((dat & 0x04) == 0x04)); oled_SendClock();
	oled_SwitchSID(((dat & 0x02) == 0x02)); oled_SendClock();
	oled_SwitchSID(((dat & 0x01) == 0x01)); oled_SendClock(); // sedn LSB

	oled_PORT_CS |= oled_BIT_CS;
}
コード例 #4
0
ファイル: oled.c プロジェクト: fisherofearth/Freescale2012
void oled_InitDevice(void)
{	
	oled_PORT_RST &= ~oled_BIT_RST;
	oled_delay(1000);
	oled_PORT_RST |= oled_BIT_RST;
	
	oled_WriteCMD(0xAE);	/* 关闭显示 */
	oled_WriteCMD(0xD5);	/* 设置时钟分频因子,振荡频率 */
	oled_WriteCMD(0x80); /* [3:0],分频因子;[7:4],振荡频率 */
	oled_WriteCMD(0xA8);	/* 设置驱动路数 */
	oled_WriteCMD(0x3F);	/* 默认0x3F(1/64) */
	oled_WriteCMD(0xD3);	/* 设置显示偏移 */
	oled_WriteCMD(0x00);	/* 默认为0 */

	oled_WriteCMD(0x40);	/* 设置显示开始行[5:0],行数 */

	oled_WriteCMD(0x8D);	/* 电荷泵设置 */
	oled_WriteCMD(0x14);	/* bit2,开启/关闭 */
	oled_WriteCMD(0x20);	/* 设置内存地址模式 */
	oled_WriteCMD(0x02);	/* [1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10; */
	oled_WriteCMD(0xA1);	/* 段重定义设置,bit0:0,0->0;1,0->127; */
	oled_WriteCMD(0xC0);	/* 设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数 */
	oled_WriteCMD(0xDA);	/* 设置COM硬件引脚配置 */
	oled_WriteCMD(0x12);	/* [5:4]配置 */

	oled_WriteCMD(0x81);	/* 对比度设置 */
	oled_WriteCMD(0xEF);	/* 1~255;默认0x7F (亮度设置,越大越亮) */
	oled_WriteCMD(0xD9);	/* 设置预充电周期 */
	oled_WriteCMD(0xF1);	/* [3:0],PHASE 1;[7:4],PHASE 2; */
	oled_WriteCMD(0xDB);	/* 设置VCOMH 电压倍率 */
	oled_WriteCMD(0x30);	/* [6:4] 000,0.65*VCC;001,0.77*VCC;011,0.83*VCC; */

	oled_WriteCMD(0xA4);	/* 全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏) */
	oled_WriteCMD(0xA6);	/* 设置显示方式;bit0:1,反相显示;0,正常显示 */
	
	oled_WriteCMD(0xAF);	/* 开启显示 */
	oled_ClearScreen();  
}