?? screen.c
字號:
#include <stdio.h>
#include <absacc.h>
#include <stdarg.h>
#include <./Atmel/at89x52.h>
#include "source.h"
/*為屏幕的下部分顯示時間、信息的區(qū)域顯示函數(shù)*/
bit screen_hbs(void){
static unsigned char inf_seq=0;
unsigned char local_msg;
local_msg=read_hbs_msg();//讀其消息隊列
if(local_msg){//如果返回值為非0,則消息不為空
switch(local_msg){
case MSG_HBS_INFO_CLEAR:
switch(screen.hbs_fsm){
case FSM_HBS_CLEAR:
break;
default:
clr_notice();
change_hbs_fsm(FSM_HBS_CLEAR);
break;
}
break;
case MSG_HBS_INFO_SHOW:
switch(screen.hbs_fsm){
case FSM_HBS_INFO:
break;
default:
clr_notice(); //清除以前的信息
inf_seq=0;
show_elvinfo(show_notice.ognd+inf_seq); //顯示第一條信息
change_hbs_fsm(FSM_HBS_INFO);//把狀態(tài)轉(zhuǎn)換為顯示信息狀態(tài)
break;
}
break;
case MSG_HBS_INFO_CHANGE:
switch(screen.hbs_fsm){
case FSM_HBS_INFO://循環(huán)顯示從1到9的信息
clr_notice();//清除以前的信息
inf_seq++;
inf_seq %=10;
show_elvinfo(show_notice.ognd+inf_seq);//顯示下一條信息
break;
}
break;
case MSG_HBS_UPD_TIME://更新時間
break;
case MSG_HBS_UPD_TEMPE://更新溫度
show_wd(others.temperature);
break;
default:
break;
}
return 1;
}
else{
return 0;
}
}
/*為屏幕顯示箭頭的區(qū)域*/
bit screen_status(void){
static unsigned char move_step=(STATAREA_HEIGHT-ARROW_HEIGHT)/3-1;
unsigned char this_msg;
this_msg=read_status_msg();//讀其消息隊列
if(this_msg){
switch(this_msg){
case MSG_STATUS_UP://為顯示箭頭向上的消息
switch(screen.status_fsm){
case FSM_STATUS_UP:
break;
default:
clr_area(STATAREA_LEFT,STATAREA_TOP,STATAREA_WIDTH,STATAREA_HEIGHT);
draw_uparrow(POS_ARROW_ORGX,STATAREA_TOP+STATAREA_HEIGHT-ARROW_HEIGHT);
scentry.arrow_cur_top=STATAREA_TOP+STATAREA_HEIGHT-ARROW_HEIGHT;
change_status_fsm(FSM_STATUS_UP);
break;
}
break;
case MSG_STATUS_DOWN://為顯示箭頭向下的消息
switch(screen.status_fsm){
case FSM_STATUS_DOWN:
break;
default:
clr_area(STATAREA_LEFT,STATAREA_TOP,STATAREA_WIDTH,STATAREA_HEIGHT);
draw_downarrow(POS_ARROW_ORGX,STATAREA_TOP);
scentry.arrow_cur_top=STATAREA_TOP;
change_status_fsm(MSG_STATUS_DOWN);
break;
}
break;
case MSG_STATUS_CLEAR://為清除箭頭的消息
switch(screen.status_fsm){
case FSM_STATUS_CLR:
break;
default:
/*清除顯示箭頭的區(qū)域*/
clr_area(STATAREA_LEFT,STATAREA_TOP,STATAREA_WIDTH,STATAREA_HEIGHT);
change_status_fsm(FSM_STATUS_CLR);
break;
}
break;
case MSG_STATUS_MOVE://箭頭移動
switch(screen.status_fsm){
case FSM_STATUS_DOWN:
if(scentry.arrow_cur_top+move_step+ARROW_HEIGHT>STATAREA_HEIGHT+STATAREA_TOP){
//已經(jīng)到達箭頭顯示區(qū)域的最低部,箭頭停止
}
else{//向下移動箭頭,在移動箭頭時沒有清除以前的箭頭,可以看出其移動軌跡
set_timer(MOVE_TIMER,MOVE_TIME_LENGTH);
scentry.arrow_cur_top +=move_step;
draw_downarrow(POS_ARROW_ORGX,scentry.arrow_cur_top);
}
break;
case FSM_STATUS_UP:
if(scentry.arrow_cur_top<(move_step+STATAREA_TOP)){
//已經(jīng)到達箭頭顯示區(qū)域的最頂部,箭頭停止
}
else{//向上移動箭頭,在移動箭頭時沒有清除以前的箭頭,可以看出其移動軌跡
set_timer(MOVE_TIMER,MOVE_TIME_LENGTH);
scentry.arrow_cur_top -=move_step;
draw_uparrow(POS_ARROW_ORGX,scentry.arrow_cur_top);
}
break;
}
break;
default:
break;
}
return 1;
}
else{
return 0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -