challis
发表于 2024-1-30 00:36:02
添加函数AddTimerSec,用来处理计时器的时间流逝
当秒钟达到60时,分钟+1,秒钟归0
当分钟达到99时,分钟归0
void AddTimerSec()
{
if(timer_second >= 59)
{
timer_second = 0;
if(timer_minute >= 99)
timer_minute = 0;
else
++timer_minute;
}
else
++timer_second;
}
challis
发表于 2024-1-30 00:37:51
模式按钮增加长按功能Btn_Mode_LongClick
长按时,如果当前为 Mode_Normal 模式,则进入计时器模式(Mode_Timer),且计时器的时间清零
如果当前是 Mode_Timer 模式,则退出计时器模式,返回正常模式(Mode_Normal)
否则响应短按函数Btn_Mode_Click
uchar Btn_Mode_LongClick()
{
if(mode == Mode_Normal)
{
timer_minute = 0;
timer_second = 0;
mode = Mode_Timer;
return 1;
} else if(mode == Mode_Timer)
{
mode = Mode_Normal;
return 1;
}
else
{
return Btn_Mode_Click();
}
}
challis
发表于 2024-1-30 00:40:20
在Button_OnTimeOut函数中,修改模型按钮的函数触发逻辑,每100ms检测一次,当按钮按下时,btn_mode_ts+1,当按钮松开时,如果btn_mode_ts>10(按下超过1000ms),则触发长按函数,且将btn_mode_ts置0,如果0<btn_mode_ts<=10,则触发短按函数,同样将btn_mode_ts置0
if(btn_mode)
{
if(btn_mode_ts>10)
{
need_update += Btn_Mode_LongClick();
btn_mode_ts = 0;
}else if(btn_mode_ts)
{
need_update += Btn_Mode_Click();
btn_mode_ts = 0;
}
}else
btn_mode_ts += 1;
challis
发表于 2024-1-30 00:41:33
Timer3_Isr中修改,如果过去1s<且模式为Mode_Timer_Running,则调用AddTimerSec来增加计时器的时间
if(mode == Mode_Timer_Running)
{
AddTimerSec();
}
else if(mode != Mode_Change_Minute && mode != Mode_Change_Hour )
{
if(AddSec() && clock_enable)
{
//如果分钟变动:
if(mode == Mode_Normal)
{
if(minute == clock_minute && hour == clock_hour)
mode = Mode_Clock_Alert;
}else if(mode == Mode_Clock_Alert)
{
if(minute != clock_minute || hour != clock_hour)
mode = Mode_Normal;
}
}
}
challis
发表于 2024-1-30 00:44:44
模式按钮短按函数中,添加逻辑,如果当前是Mode_Timer模式,则开始计时,进入Mode_Timer_Running模式,如果是计时模式(Mode_Timer_Running),则暂停,进入Mode_Timer模式
case Mode_Timer:
mode = Mode_Timer_Running;
break;
case Mode_Timer_Running:
mode = Mode_Timer;
break;
challis
发表于 2024-1-30 00:45:50
按钮+的函数中添加逻辑,如果是Mode_Timer模式,则将计时器时间归0,如果是Mode_Timer_Running模式,则不处理
case Mode_Timer:
if(timer_minute || timer_second)
{
timer_minute = 0;
timer_second = 0;
return 1;
}
else
return 0;
break;
case Mode_Timer_Running:
return 0;
break;
challis
发表于 2024-1-30 00:46:16
烧录,测试功能正常!
challis
发表于 2024-1-30 00:47:35
添加了计时器功能的项目源码
challis
发表于 2024-1-30 00:50:07
数码管时钟的项目到此就算告一段落了,接下来准备研究串口通信,以及使用串口发送数据来测试STC-ISP调试接口的各个模块功能!
lzl1okOK
发表于 2024-1-30 02:09:01
challis 发表于 2024-1-25 09:26
写一个通用的数码管显示的函数
uchar led 控制共阳极数码管显示情况
你的LED代码查询工具能否分享下
页:
1
2
3
4
5
6
7
8
[9]
10
11