你这真的够小白的,250us这么大的备注没看到吗?250*n ==> n=2000时 ==> 2000*250us=500000us=0.5s,n是用来计算时间的。
flag、 ding 和 dong 都是标志位,组合控制声响,按键按下时flag=0,n从0开始计算到2000,即为0.5s,在这0.5s内 ding++,每次加到一即if(ding==1),翻转一次IO口,直到n到达2000时,此时满足if(n==2000)和if(flag==0)进入flag=~flag,即flag=1,n=0,n重新计数到2000,此时flag=1则进行dong++,每加到dong==2时,IO口翻转一次。直到n加到2000,同样是0.5s,然后关闭定时器等待下一次按键按下。为什么这么设计呢?了解无源蜂鸣器工作。 |