Example #1
0
void app(void)
{
	u8 Local_u8Words[2][9]={"  Temp=","  Speed="};
	//u8 Local_u8Arrow[2]={DASH##SELECT_AROW"};
	u8 Select_SW_State=RELEASE,Up_SW_State=RELEASE,Down_SW_State=RELEASE,Local_u8Check;
	static u8 Local_u8State=DISPLAY;
	static u8 Local_u8ModeToState=TEMP;
	static u8 Local_u8SelectFlag=0;
	static u8 Local_u8Flag=1;
	static u8 Local_u8UpFlag=0;
	static u8 Local_u8DownFlag=0;
	static u8 Local_u8ModeFlag=1;
	static u8 Local_u8SWFlag=0;
	u8 Local_u8Temp;
	u8 Local_u8Speed;
	//static u8 Local_u8UpDownFlag=RELEASE;
	EEPROM_u8ReadByte(TEMP_ADDRESS,&Local_u8Temp);
	EEPROM_u8ReadByte(SPEED_ADDRESS,&Local_u8Speed);
	if(Local_u8Flag==1)
	{
		LCD_VoidGotoxy(0,1);
		LCD_VoidString(Local_u8Words[0]);
		LCD_VoidGotoxy(0,2);
		LCD_VoidString(Local_u8Words[1]);
		Local_u8Flag=0;
	}
	TACTILE_u8GetState(TACTILE_u8Switch1,&Select_SW_State);
	TACTILE_u8GetState(TACTILE_u8Switch2,&Up_SW_State);
	TACTILE_u8GetState(TACTILE_u8Switch3,&Down_SW_State);
	Local_u8Check=(Select_SW_State<<SELECT_BIT)|(Up_SW_State<<UP_BIT)|(Down_SW_State<<DOWN_BIT);
	//DIO_u8WritePortVal(1,Local_u8Check);
	switch(Local_u8State)
	{
	case DISPLAY:
		Local_voidDisplay(Local_u8Temp,Local_u8Speed);
	//	LCD_VoidSendStringxy("         ",0,1);
		switch(Local_u8Check)
		{
		case SELECT_SW_PRESSED:
			LCD_VoidGotoxy(0,1);
			LCD_VoidData(DASH);
			LCD_VoidData(SELECT_AROW);
			LCD_VoidGotoxy(0,2);
			LCD_VoidData(EMPTY);
			LCD_VoidData(EMPTY);
			Local_u8SelectFlag=1;
			break;
		default:
			if(Local_u8SelectFlag==1)
			{
				Local_u8State=MODES;
				Local_u8SelectFlag=0;
			}
			break;
		}
		break;
	case MODES:
		switch(Local_u8Check)
		{
		case SELECT_SW_PRESSED:
			Local_u8ModeFlag=0;
			break;
		case UP_SW_PRESSED:
			Local_u8UpFlag=1;
			break;
		case DOWN_SW_PRESSED:
			Local_u8Flag=1;
			Local_u8State=DISPLAY;
			break;
		default:

			if(Local_u8UpFlag==1)
			{
				Local_u8ModeToState=Local_u8ModeToState^1;
				LCD_VoidGotoxy(0,(Local_u8ArowPlace[Local_u8ModeToState]));
				LCD_VoidData(DASH);
				LCD_VoidData(SELECT_AROW);
				LCD_VoidGotoxy(0,(Local_u8ArowPlace[(Local_u8ModeToState+1)%2]));
				LCD_VoidData(EMPTY);
				LCD_VoidData(EMPTY);
				Local_u8UpFlag=0;
			}
			else{
			}
			if(Local_u8ModeFlag==0)
			{
				Local_u8State=Local_u8ModeToState;
				LCD_VoidSendStringxy("           ",0,Local_u8ArowPlace[Local_u8ModeToState]-1);
				Local_u8ModeFlag=1;
			}
			else{
			}
			break;
		}
		break;
	case TEMP:
		switch(Local_u8Check)
		{
		case SELECT_SW_PRESSED:
			Local_u8SWFlag=1;
			break;
		case UP_SW_PRESSED:
			Local_u8UpFlag=1;
			break;
		case DOWN_SW_PRESSED:
			Local_u8DownFlag=1;
			break;
		default:
			if(Local_u8UpFlag==1)
			{
			if(Local_u8Temp<MAX_TEMP)
			{
				Local_u8Temp++;
				EEPROM_voidWriteByte(Local_u8Temp,TEMP_ADDRESS);
				Local_voidDisplay(Local_u8Temp,EMPTY);
			}
			else{
			}
			Local_u8UpFlag=0;
			}
			if(Local_u8DownFlag==1)
			{
			if(Local_u8Temp>MIN_TEMP)
			{
				Local_u8Temp--;
				EEPROM_voidWriteByte(Local_u8Temp,TEMP_ADDRESS);
				Local_voidDisplay(Local_u8Temp,EMPTY);
			}
			else{
			}

			Local_u8DownFlag=0;
			}

			if(Local_u8SWFlag==1)
			{
				Local_u8State=MODES;
				Local_u8SWFlag=0;
			}
			else{
			}
			break;
		}
		break;
	case SPEED:
		switch(Local_u8Check)
		{
		case SELECT_SW_PRESSED:
			Local_u8SWFlag=1;
			break;
		case UP_SW_PRESSED:
			Local_u8UpFlag=1;
			break;
		case DOWN_SW_PRESSED:
			Local_u8DownFlag=1;
			break;
		default:
			if(Local_u8UpFlag==1)
			{
			if(Local_u8Speed<SPEEDs_NUM)
			{
				Local_u8Speed++;
				EEPROM_voidWriteByte(Local_u8Speed,SPEED_ADDRESS);
				Local_voidDisplay(EMPTY,Local_u8Speed);
			}
			else{
			}
			Local_u8UpFlag=0;
			}
			if(Local_u8DownFlag==1)
			{
			if(Local_u8Speed>0)
			{
				Local_u8Speed--;
				EEPROM_voidWriteByte(Local_u8Speed,SPEED_ADDRESS);
				Local_voidDisplay(EMPTY,Local_u8Speed);
			}
			else{
			}
			Local_u8DownFlag=0;
			}
			if(Local_u8SWFlag==1)
			{
				Local_u8State=MODES;
				Local_u8SWFlag=0;
				Local_u8ModeToState=TEMP;
			}
			else{
			}
			break;
		}
		break;
	default:
		break;
	}
}
Example #2
0
void LCD_VoidSendStringxy(u8 *LCD_u8str,u8 LCD_u8x,u8 LCD_u8y)//("aktb ely 3aizo",rkm anhih 7th fy el3mod ,rkm el sf)
{
     LCD_VoidGotoxy(LCD_u8x,LCD_u8y);
     LCD_VoidString(LCD_u8str);
}