Esempio n. 1
0
void loop(void)
{
	lcdCls();

	//displayMainScreen();
	Menu_Show();
	workFlags.mainScreen = 1;
	for(;;)
	{
		if (input.changed)
		{
			input.changed = 0;
			if (workFlags.mainScreen)
			{
				Menu_Show();
				workFlags.mainScreen = 0;
			}
			else
			{

				if (input.down)
				{
					Menu_SelectNext();
				}
				else if (input.up)
				{
					Menu_SelectPrev();
				}
				else if (input.middle)
				{
					Menu_Click();
				}
				else  if (input.left)
				{
					if (!Menu_isTopLevel())
					{
						Menu_Back();
						Menu_Show();
					}
					else
					{
						Menu_Reset();
						displayMainScreen();

					}
				}
			}
		}
	}
}
void
xpcc::SiemensS65Common<SPI, CS, RS, Reset>::lcdSettings(bool landscape) {
	// Hardware reset is low from initialize
	xpcc::delayMilliseconds(50);
	Reset::set();
	xpcc::delayMilliseconds(50);

	writeCmd(0x07, 0x0000); //display off
	xpcc::delayMilliseconds(10);

	//power on sequence
	writeCmd(0x02, 0x0400); //lcd drive control
	writeCmd(0x0C, 0x0001); //power control 3: VC        //step 1
	writeCmd(0x0D, 0x0006); //power control 4: VRH
	writeCmd(0x04, 0x0000); //power control 2: CAD
	writeCmd(0x0D, 0x0616); //power control 4: VRL
	writeCmd(0x0E, 0x0010); //power control 5: VCM
	writeCmd(0x0E, 0x1010); //power control 5: VDV
	writeCmd(0x03, 0x0000); //power control 1: BT        //step 2
	writeCmd(0x03, 0x0000); //power control 1: DC
	writeCmd(0x03, 0x000C); //power control 1: AP
	xpcc::delayMilliseconds(40);
	writeCmd(0x0E, 0x2D1F); //power control 5: VCOMG     //step 3
	xpcc::delayMilliseconds(40);
	writeCmd(0x0D, 0x0616); //power control 4: PON       //step 4
	xpcc::delayMilliseconds(100);

	//display options
	if (landscape) {
		writeCmd(0x05, 0x0030); //Entry mode AM=0, ID0=1, ID1=1
	}
	else {
		// portrait mode
		writeCmd(0x05, 0x0038); //Entry mode AM=1, ID0=1, ID1=1
	}

	//setArea(0, 0, (S65_WIDTH-1), (S65_HEIGHT-1));
	//  writeCmd(0x16, 176<<8); //set y
	//  writeCmd(0x17, 132<<8); //set x

	//display on sequence (bit2 = reversed colors)
	writeCmd(0x07, 0x0005); //display control: D0
	writeCmd(0x07, 0x0025); //display control: GON
	writeCmd(0x07, 0x0027); //display control: D1
	writeCmd(0x07, 0x0037); //display control: DTE
	xpcc::delayMilliseconds(10);
	lcdCls(0x03e0);
}
Esempio n. 3
0
void
xpcc::SiemensS65<SPI, CS, RS, Reset>::lcdSettings() {
	// Hardware reset is low from initialize
	xpcc::delay_ms(50);
	Reset::set();
	xpcc::delay_ms(50);

	writeCmd(0x07, 0x0000); //display off
	xpcc::delay_ms(10);

	//power on sequence
	writeCmd(0x02, 0x0400); //lcd drive control
	writeCmd(0x0C, 0x0001); //power control 3: VC        //step 1
	writeCmd(0x0D, 0x0006); //power control 4: VRH
	writeCmd(0x04, 0x0000); //power control 2: CAD
	writeCmd(0x0D, 0x0616); //power control 4: VRL
	writeCmd(0x0E, 0x0010); //power control 5: VCM
	writeCmd(0x0E, 0x1010); //power control 5: VDV
	writeCmd(0x03, 0x0000); //power control 1: BT        //step 2
	writeCmd(0x03, 0x0000); //power control 1: DC
	writeCmd(0x03, 0x000C); //power control 1: AP
	xpcc::delay_ms(40);
	writeCmd(0x0E, 0x2D1F); //power control 5: VCOMG     //step 3
	xpcc::delay_ms(40);
	writeCmd(0x0D, 0x0616); //power control 4: PON       //step 4
	xpcc::delay_ms(100);

	//display options
#if defined(S65_MIRROR)
	writeCmd(0x05, 0x0008); //Entry mode --
#else
	writeCmd(0x05, 0x0038); //Entry mode ++
#endif
	//setArea(0, 0, (S65_WIDTH-1), (S65_HEIGHT-1));
	//  writeCmd(0x16, 176<<8); //set y
	//  writeCmd(0x17, 132<<8); //set x

	//display on sequence (bit2 = reversed colors)
	writeCmd(0x07, 0x0005); //display control: D0
	writeCmd(0x07, 0x0025); //display control: GON
	writeCmd(0x07, 0x0027); //display control: D1
	writeCmd(0x07, 0x0037); //display control: DTE
	xpcc::delay_ms(10);

	lcdCls(0x03e0);
}
Esempio n. 4
0
File: 1100.c Progetto: eaglevis/AVR
void demo()
{
	lcdCls();
	for (uint8_t i = 0x20; i <= 128; ++i)
	{
		lcdChar(i, LCD_XOR);
	}

	lcdUpdate();
	_delay_ms(2000);

	lcdStrPos (3,11);
	lcdStr_P(PSTR("Free string"), LCD_WHITE);
	lcdStrPos (22,37);
	lcdStr_P(PSTR("positioning"), LCD_WHITE);
	lcdUpdate();
	_delay_ms(3000);

	lcdCls();
	lcdStr_P(PSTR("Lines, rectangles, circles."), LCD_BLACK);
	lcdUpdate();
	_delay_ms(1000);
	lcdNewLine();
	lcdStr_P(PSTR("Filled or unfilled."), LCD_BLACK);
	lcdUpdate();
	_delay_ms(1000);
	lcdNewLine();
	lcdStr_P(PSTR("Solid or XORed filling, text."), LCD_BLACK);
	lcdUpdate();
	_delay_ms(5000);


	lcdRect(0, 0, LCD_Y_RES, LCD_X_RES, LCD_BLACK, LCD_FILL_BLACK);

	lcdStrPos(36,0);

	lcdStr_P(PSTR("MENU"), LCD_XOR);


	lcdRect(5,7,LCD_Y_RES-8, LCD_X_RES-10,LCD_WHITE, LCD_FILL_WHITE );

	for (int i = 1; i < 8; ++i)
	{
		lcdStrPos(10, i*8);
		lcdInt(i, LCD_BLACK);
		lcdStr_P(PSTR(". Sample"), LCD_BLACK);
		lcdLine(5,8*i-1,LCD_X_RES-10, LCD_HORIZ, LCD_BLACK);
	}

	lcdUpdate();

	_delay_ms(2000);


	lcdCircle(LCD_X_RES/2,LCD_Y_RES/2,30, LCD_XOR, LCD_FILL_XOR);
	lcdUpdate();
	_delay_ms(2000);
	lcdBresenhamLine(0, 0, LCD_X_RES-1, LCD_Y_RES-1, LCD_XOR);
	lcdUpdate();
	_delay_ms(2000);
	lcdBresenhamLine(0, LCD_Y_RES-1, LCD_X_RES-1, 0, LCD_XOR);
	lcdUpdate();
	_delay_ms(5000);

	lcdCls();
	lcdStr_P(PSTR("Per-pixel horizontal fill speed test in:"), LCD_BLACK);lcdUpdate();lcdNewLine();
	_delay_ms(1000);
	lcdStr_P(PSTR("3..."), LCD_BLACK);lcdUpdate();
	_delay_ms(1000);
	lcdStr_P(PSTR("2..."), LCD_BLACK);lcdUpdate();
	_delay_ms(1000);
	lcdStr_P(PSTR("1..."), LCD_BLACK);lcdUpdate();
	_delay_ms(1000);


	for (uint8_t x = 0; x < LCD_X_RES; ++x)
	{
		for (uint8_t y = 0; y < LCD_Y_RES; ++y)
		{

			lcdPixel(x,y,LCD_PIXEL_XOR);
			lcdUpdate();
		}
	}
	_delay_ms(1000);
	lcdNewLine();
	lcdStr_P(PSTR("Vertical in:"), LCD_XOR);lcdUpdate();lcdNewLine();
	_delay_ms(1000);
	lcdStr_P(PSTR("3..."), LCD_XOR);lcdUpdate();
	_delay_ms(1000);
	lcdStr_P(PSTR("2..."), LCD_XOR);lcdUpdate();
	_delay_ms(1000);
	lcdStr_P(PSTR("1..."), LCD_XOR);lcdUpdate();
	_delay_ms(1000);

	for (uint8_t y = 0; y < LCD_Y_RES; ++y)
	{
		for (uint8_t x = 0; x < LCD_X_RES; ++x)
		{

			lcdPixel(x,y,LCD_PIXEL_XOR);
			lcdUpdate();
		}
	}
	_delay_ms(2000);
	lcdCls();
	lcdStr_P(PSTR("Every pixel was filled with it's XORed value and updated."), LCD_XOR);lcdUpdate();
	_delay_ms(5000);
	lcdCls();
	lcdStr_P(PSTR("That's it!"), LCD_XOR);
	lcdNewLine();
	lcdStr_P(PSTR("Thanks!"), LCD_XOR);lcdUpdate();

	_delay_ms(5000);
}