Timer3中添加对AddSec的后续处理:
只有模式不为Mode_Change_Minute和Mode_Change_Hour时才会增加秒数
AddSec如果返回1,代表分钟变了,则判断是否需要切换模式为Mode_Clock_Alert,或者切回Mode_Normal (闹钟响应提醒持续时间为1分钟)
- //100毫秒@6.000MHz
- void Timer3_Isr(void) interrupt 19
- {
- uchar need_update;
- need_update = Button_OnTimeOut(BTN_UP,BTN_MODE);
- ++t3_iter;
- if(t3_iter == 5)
- {
- is_show_dot = !is_show_dot;
- SetSeg4Bit();
- }
- else if(t3_iter == 10)
- {
- if(mode != Mode_Change_Minute && mode != Mode_Change_Hour )
- {
- if(AddSec())
- {
- //如果分钟变动:
- 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;
- }
- }
- }
- is_show_dot = !is_show_dot;
- SetSeg4Bit();
- t3_iter = 0;
- }
- else if(need_update)
- SetSeg4Bit();
- }
复制代码
|