📄 show.c
字号:
#include "paramac.h"
// refresh the gear show ram : show.gear_show[2,3]
show_gear_show(){
show.gear_show[2]=
(gear_id_show_list[work.gear_id]&0xf0)>>4;
show.gear_show[3]=
gear_id_show_list[work.gear_id]&0x0f;
}
// 消隐工作时间显示时左边的零:
void black_left_zero_of_run_time(void){
unsigned char i=0;
show.time_black=5;
while(i<TIME_LEN-2){
if(work.time[i]==0)
show.time_black=(TIME_LEN-2)-i;
else break;
i++;
}
}
// 键按下时,显示齿轮号。齿轮号显示字产生子程序:
gear_id_show(gear_id,id){
switch(id){
case 0:
return gear_id+1;
break;
case 1:
return 1;
break;
case 2:
case 3:
return show.gear_show[id];
break;
default:
break;
}
}
// *** show to the LED: *****
void show2led(void){
if(rq_show)return;
if(++show.id>=TIME_LEN+SPEED_LEN){ //时间累计最低位,错误校验纠正
DA_164=1;
show.now=work.time[TIME_LEN-1];
show.id=0;
}
else if(show.id<=TIME_LEN-1) //其他时间位
show.now = work.time[TIME_LEN-show.id-1];
else{
if (!KEY_PIN){ //键按下时显示齿轮号
show.now=gear_id_show( work.gear_id,
SPEED_LEN- (show.id-TIME_LEN) -1);
}else{ //没按下正常显示,显示速度
show.now = show.speed[ SPEED_LEN- (show.id-TIME_LEN) -1];
}
}
if(show.id>show.time_black && show.id<=TIME_LEN-1)show.now=LED_BLACK;//时间显示左边零消隐控制
#ifdef SHOW_LEFT_MEMORY_ADDR //键按下则显示当前有效地址
if(!KEY_PIN){
if(show.id==5)show.now=(save.next_addr&0xf0)>>4;
if(show.id==4)show.now=(save.next_addr&0x0f);
}
#endif
show.showing=show_table[show.now];
if(show.id==1) //小数点的闪烁控制
show.showing=show.showing & (dot_showing==0?0x7f:0xff);
rq_show=1; //请求输出
}
// *** 运行时小数点的显示控制 ***
dot_flash()
{
if(real_work==TRUE) //有脉冲时,说明正常工作,
{
dot_showing=~dot_showing; //那么允许闪烁,1S一个周期,
}else
{
dot_showing=0; //否则不闪烁。
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -