#ifndef MYOLED_UI_H
#define MYOLED_UI_H
#include "sys.h"
#include "oled.h"
#include "encoder.h"
typedef void(*MyFrom)();
typedef struct
{
u8 current;
u8 up;
u8 down;
u8 enter;
MyFrom FromShow;
}MyFromControl;
typedef struct
{
int goalTemp;
int goalTime;
}CuringConf;
extern int gl_LastKeyValue;
extern int gl_KeyValue;
extern u8 gl_fromIndex;
extern MyFromControl gl_MyFroms[];
void From_Control();
void fromStart();
void fromTime();
void fromTemp();
void fromBack();
void fromEdit();
void fromPause();
void fromEnd();
void fromTimeShow();
void fromTempShow();
void fromPauseShow();
void fromEndShow();
void frame1();
void frame2();
void frame3();
#endif
#include "MYOLED_UI.h"
#include "font.h"
u8 gl_fromIndex=0;
MyFromControl gl_MyFroms[]=
{
{0,2,1,3,fromStart},
{1,0,2,7,fromTime},
{2,1,0,8,fromTemp},
{3,6,4,3,fromBack},
{4,3,5,1,fromEdit},
{5,4,6,4,fromPause},
{6,5,3,4,fromEnd},
{7,7,7,1,fromTimeShow},
{8,8,8,2,fromTempShow},
{8,8,8,2,fromPauseShow},
{8,8,8,2,fromEndShow},
};
CuringConf CurSetting={30,60};
void From_Control()
{
switch(Key_Scan())
{
case NORMAl:
gl_fromIndex = gl_MyFroms[gl_fromIndex].current;
break;
case FORWARD:
gl_fromIndex = gl_MyFroms[gl_fromIndex].up;
break;
case BACKWARD:
gl_fromIndex = gl_MyFroms[gl_fromIndex].down;
break;
}
}
#define TIME 700
void frame1()
{
OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP1);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP1);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP2);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP3);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP4);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP5);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP2);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP6);
delay_ms(555);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP7);
delay_ms(555);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP6);
delay_ms(555);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP7);
delay_ms(555);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP6);
delay_ms(555);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP7);
delay_ms(555);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP8);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP9);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP10);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP11);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP8);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP9);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP12);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP15);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP9);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP10);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP16);
delay_ms(TIME);
OLED_DrawBMPS(0,0,128,8,(unsigned char *)BMP17);
delay_ms(TIME);
}
void frame2()
{
OLED_ShowStr(2,0,(unsigned char*)START,5);
OLED_ShowStrS(2,2,(unsigned char*)TIME,4);
OLED_ShowStr(2,4,(unsigned char*)TEMP,4);
}
void frame3()
{
OLED_ShowStr(2,0,(unsigned char*)START,5);
OLED_ShowStr(2,2,(unsigned char*)TIME,4);
OLED_ShowStrS(2,4,(unsigned char*)TEMP,4);
}
void fromStart()
{
printf("fromStart\r\n");
frame1();
}
void fromTime()
{
printf("fromTime\r\n");
frame2();
}
void fromTemp()
{
printf("fromTemp\r\n");
frame3();
}
void fromBack()
{
printf("fromBack\r\n");
}
void fromEdit()
{
printf("fromEdit\r\n");
}
void fromPause()
{
printf("fromPause\r\n");
}
void fromEnd()
{
printf("fromEnd\r\n");
}
void fromTimeShow()
{
u16 line1Num = 0,line2Num=0,line3Num=0;
if(CurSetting.goalTime<=60)
{
line1Num=CurSetting.goalTime-1;
}
else if(CurSetting.goalTime<=120)
{
line1Num=CurSetting.goalTime-5;
}
else
{
line1Num=CurSetting.goalTime-10;
}
if(CurSetting.goalTime<60)
{
line2Num=CurSetting.goalTime+1;
line3Num=CurSetting.goalTime+2;
}
else if(CurSetting.goalTime<120)
{
line2Num=CurSetting.goalTime+5;
line3Num=CurSetting.goalTime+10;
}
else
{
line2Num=CurSetting.goalTime+10;
line3Num=CurSetting.goalTime+20;
}
printf("fromTimeShow\r\n");
}
void fromTempShow()
{
printf("fromTempShow\r\n");
}
void fromPauseShow()
{
printf("fromPauseShow\r\n");
}
void fromEndShow()
{
printf("fromEndShow\r\n");
}
#include "main.h"
int test=0;
int main(void)
{
Device_Init();
while(1)
{
gl_MyFroms[gl_fromIndex].FromShow();
}
}