{
if(cnt<1 0)start_flag=Oxff;// 如果计时末开始,则置启动标志为 0xff
else start_flag=OxOO;//如果已经计时,则置启动标志为 OxOO
void init_devices(void)//芯片的初始化子函数{
Port_init();//端口初始化
timerO_init();//定时器0初始化
timer1_init();//定时器 1 初始化
MCUCR = OxO2;//INTO为下降沿触发
GICR = Ox40;//使能 INTO 中断
TIMSK = OxO5;//使能TO、T1 中断
SREG=Ox80;//使能总中断
}
void sCAN_sl(void)//扫描按键S1 子函数
{
if(S1 ==0)cnt=0;//如果S1 键按下,则清除计时值}
void main(void)//定义主函数
{
init_devices();//芯片的初始化
while(11 //无限循环
{
if(sta rt_flag==0xff)TCCR1 B = OxO2;//如果启动标志为 Oxff,启动定时器 1
if(start_flag== Ox O0){TCCR 1 B = Ox O0; scan_s1 ();}//如果启动标志为 0xOO,
//则关闭定时器 1 再调用
扫描按键S1 的子函数
//无限循环结束
//主函数结束