예제 #1
0
파일: menu.c 프로젝트: patlas/piwko
void enter_menu(uint8_t menu_no, uint8_t submenu_no)
{
	char s[20];
	if(menu_no==0 && submenu_no==2)						// Menu 1.2
		rez=enter_integer(rez,-10,100,1,3, "WARTOSC" , "s");
	LcdClearLine(3);
	LcdGotoXY(1,3);
	sprintf(s,"ENTER %1u.%1u:%d",menu_no + 1, submenu_no, rez);
	LcdStr(FONT_1X, FONT_POSITIVE, (unsigned char*)s);
	delay_ms(1000);
	LcdClearLine(3);
}
예제 #2
0
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  +
  + FUNCTION NAME:  void LcdClearDisplay(void)
  +
  + DESCRIPTION:    it clears the display (the content of the DDRAM!)
  +
  + INPUT:			None
  +
  + RETURN:         None
  +
  + NOTES:
  +
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void LcdClearDisplay(void)
{
    U8 page;

    for(page=1; page<9; page++)
    {
        LcdClearLine(page);
    }
}
예제 #3
0
파일: menu.c 프로젝트: patlas/piwko
void slide_up()
{
	uint8_t i;
	for(i=5;i>1;i--)
	{
		LcdRectangle(0,8,83,(i * 8) - 1,TRANSPARENT);
		LcdClearLine(i+1);
		delay_ms(50);
	}
}
예제 #4
0
파일: menu.c 프로젝트: patlas/piwko
void slide_down()
{
	uint8_t i;

	for(i=1;i<6;i++)
	{
		LcdClearLine(i+1);
		LcdRectangle(0,8,83,(i+1)*8,TRANSPARENT);
		if(i==5)
			LcdLine(0,47,83,47,PIXEL_ON);
		delay_ms(50);
	}
}
예제 #5
0
void HalLcdWriteString (char *str, uint8 option)
{
  uint8 x=0,y=0,strLen;
  uint8 lcdBuf[HAL_LCD_MAX_CHARS+1];
    
  x=0;
  y = (option-1)*2;
  strLen = (uint8)osal_strlen( (char*)str );

  /* Check boundries */
  if ( strLen > HAL_LCD_MAX_CHARS )
    strLen = HAL_LCD_MAX_CHARS;

  osal_memset(lcdBuf, 0, HAL_LCD_MAX_CHARS+1);
  osal_memcpy( lcdBuf, str, strLen );
  
  LcdClearLine(y, 2);
  LCD_P8x16Str(x, y, lcdBuf);
}
예제 #6
0
파일: menu.c 프로젝트: patlas/piwko
void  show_menu(uint8_t menu_no, uint8_t submenu_no)
{
	LcdClearLine(2);
	LcdGotoXY(1,2);
	LcdStr(FONT_1X,FONT_POSITIVE, (unsigned char*)menu_strings[submenu_item][menu_item]);
}
예제 #7
0
파일: menu.c 프로젝트: patlas/piwko
void show_graphic_menu(uint8_t menu_no, uint8_t submenu_no)
{
	volatile uint8_t i,j;
	volatile uint8_t x_size, y_size;
	int a;

	i=1;
	y_size = sizeof(menu_strings)/sizeof(menu_strings[0]);			// makzymalna ilosc podmenu
	x_size = sizeof(menu_strings[0])/sizeof(menu_strings[0][0]);	// ilosc menu
	a=0;
	do																// rzeczywista ilosc podmenu
	{																//
		a=strlen(menu_strings[i][menu_no]);							//
	}while(a>0 && i++ < (y_size - 1) );									//
	y_size=i;														//

	LcdFillLine(1);
	LcdGotoXY(2,1);
	LcdStr(FONT_1X,FONT_NEGATIVE,"MENU");

	for(i=2;i<7;i++) LcdClearLine(i);								// wyczyszczenie sektora wyswietlajacego pozycje menu
	if(submenu_no==0)												// jezeli menu glowne
	{
		i=0;
		if (menu_no<5)	j=0;										// jezeli ilosc pozycji przekracza wielkosc ekranu
		else j=menu_no-4;											// to menu trzeba przewijac
		do
		{
			LcdClearLine(i+2);
			LcdGotoXY(2, i+2);
			if(j==menu_no)											// podswietlanie wybranego menu
				LcdStr(FONT_1X,FONT_NEGATIVE,(unsigned char*)menu_strings[0][j]);	//
			else
				LcdStr(FONT_1X,FONT_POSITIVE,(unsigned char*)menu_strings[0][j]);
			j++;
		}while((++i)!=x_size && i < 6);
		LcdRectangle(0, 0, 83, 47,TRANSPARENT);						// rysowanie ramki
		LcdVerticalScrollBar(((menu_no*100)/(x_size-1)),79,8,83,47);// i suwaka pionowego
	}
	else if(submenu_no>0)											// jezeli podmenu
	{
		i=0;
		if (submenu_no<5)	j=1;									// jezeli ilosc pozycji podmenu przekracza romiar ekranu
		else j=submenu_no-4;										// to menu trzeba przewijac

		do
		{
			i++;
			LcdGotoXY(2,1);
			LcdStr(FONT_1X,FONT_NEGATIVE,"MENU>");
			LcdStr(FONT_1X,FONT_NEGATIVE,(unsigned char*)menu_strings[0][menu_no]);
			LcdClearArea(i + 1,2,14);
			LcdGotoXY(2,i + 1);
			if(j==submenu_no)										// podswietlanie wybranej pozycji menu
				LcdStr(FONT_1X,FONT_NEGATIVE,(unsigned char*)menu_strings[j][menu_no]);
			else
				LcdStr(FONT_1X,FONT_POSITIVE,(unsigned char*)menu_strings[j][menu_no]);
			j++;
		}while(j!=y_size && i < 6);
		LcdRectangle(0, 0, 83, 47,TRANSPARENT);								// ramka
		LcdVerticalScrollBar((100 * (submenu_no-1)/(y_size-2)),79,8,83,47); // suwak
	}
}
예제 #8
0
파일: menu.c 프로젝트: patlas/piwko
void menu(void)
{
	Key_t key;
	uint8_t x_size, y_size, exit;
	menu_item=0;
	submenu_item=0;
	exit=0;
	y_size = sizeof(menu_strings)/sizeof(menu_strings[0]);			// ilosc podmenu
	x_size = sizeof(menu_strings[0])/sizeof(menu_strings[0][0]);	// ilosc menu

	LcdClearLine(2);
	LcdClearLine(3);

	show_menu(menu_item, submenu_item);

	do
	{
		key=getkey();
		if(key==KEY_R)													// menu(submenu) +
		{
			if(submenu_item==0)											// jezelipoziom glowny menu
			{
				if((++menu_item)==x_size) menu_item=0;					// menu +
			}
			else														// jezeli poziom podmenu
				if((++submenu_item)==y_size) submenu_item=y_size - 1;	// submenu max
				if((menu_strings[submenu_item][menu_item])=="") submenu_item--;	// puste submenu
			show_menu(menu_item, submenu_item);
		}
		else if(key==KEY_L)												// menu(submenu) -
		{
			if(submenu_item==0)											// jezeli poziom glowny menu
			{
				if((--menu_item)<0) menu_item=x_size-1;					// menu -
			}
			else														// jezeli poziom podmenu
				if((--submenu_item)==0) submenu_item=1;					// submenu = 1
			show_menu(menu_item, submenu_item);
		}
		else if(key==KEY_OK)											// ENTER
		{
			if(submenu_item==0)											// jezeli poziom glowny menu
				if(menu_strings[1][menu_item]!="")						// jezeli menu poziada jakies podmenu
				{
					submenu_item++;										// submenu + ( w zasadzie submenu = 1)
					show_menu(menu_item, submenu_item);
				}
				else													// jezeli menu nie posiada zadnych podmenu
					enter_menu(menu_item, submenu_item);				// wejscie w obsluge menu
			else														// jezeli poziom podmenu
				enter_menu(menu_item, submenu_item);					// wejscie w obsluge podmenu
		}
		if(key==KEY_UP)													// ESC
		{
			if(submenu_item>0)											// jezeli poziom podmenu
				submenu_item=0;											// wyjscie do poziomu glownego menu
			else														// jezeli poziom glowny menu
				exit=1;													// wyjscie z obslugi menu
			show_menu(menu_item, submenu_item);
		}
	}while(exit==0);													// koniec procedury
	exit_from_menu();
}