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; } }
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); }