|
发表于 2017-9-11 16:38:56
|
显示全部楼层
1 假设你现在状态是flag=1;n=0;进入中断后n=1,所以if(n==2000) 与if(flag==0)条件不满足,执行else
{
dong++;
if(dong==2) //咚
{
dong=0;
beep=~beep;
}
}
响咚声;
2 只要你n<2000,if(n==2000) 与if(flag==0)条件不满足,响咚声;
3 一旦n=2000,因为假定flag=1;此时执行else
{
flag=0;
stop=1;
TR0=0; //关闭定时器0
}
此时,flag=0跳转执行
if(flag==0)
{ //通过改变定时计数时间可以改变门铃的声音
ding++; //叮
if(ding==1)
{
ding=0;
beep=~beep;
}
}
发出/叮声,因此flag是声音切换标志!至于其他的声音不正常,由于你的程序没有完整贴出,别人也不好帮你!
|
|