就是对蜂鸣器鸣叫时间进行定时,时间为=中断时间*100*50*3 |
如果con_t1 大于等于 100*50*3(即15000)那就跳进下面的大括号里执行里面的代码。 |
是来看评论的![]() |
huangsantian 发表于 2023-10-22 18:51 这个中断一次应该是0.2ms,5000次是1秒,所以3秒后,关闭中断,停止蜂鸣。 |
1楼正解吧,这样写应该是为了方便修改间隔时长,因为和重载参数一起,容易在各参数调整后理解间隔时长的修改方向。 |
如果con_t1的值达到15000,则将con_t1和TR1的值重置为零。 |
上面回答的人就没有一个有能力看看编译出来的代码是什么样子的,单片机是不会计算“计算100*50*3等于15000”的,这个运算过程在编译过程中已经算完了,单片机只能见到15000这个数字,什么100、50、3都不是单片机要考虑的问题。 |
乘法优先级高,先计算100*50*3等于15000,然后拿con_t1比较,执行后边语句 |
理解这个句块,先要把con_t1当成计数用,就是计算定时器工作的次数,但是超过限定值后,后面的程序段开始工作,先是清零con_t1,而后清零TR1这个寄存器,而这个寄存器却是定时器1的开关,当TR1=0时,定时器1停止工作。 |
这个con_t1变量是来计算蜂鸣器响的次数,当超过限定值后,定时器停止工作。 |
乘法符号优先级较高,先算100*50*3等于15000,然后用con_t1跟15000比较,cont_t1大于等于15000时执行花括号内的语句 |
乘法符号优先级高,先算100*50*3等于15000,然后拿con_t1去比较,con_t1大于等于15000时执行花括号里的语句 |
大于或等于符号,乘法符号,条件语句判断。 |
条件cont_1大于等于15000后cont_1清零, tr1清零. |
如果cont_1大于等于15000执行后面语句 |
这个函数是为了实现蜂鸣器响三秒 |