计数周期怎么能和占空比比较呢
原理我懂,但最后控制led亮和灭的if语句看不懂
最后的if,作用相当与一个界限。
这里我们就假设一下当tcount,dutyfactor,direct 都为0。那程序一开始 tcount计数累加,这个时候因为 dutyfactor一直为0,所以最后的if,一直为false,执行100次,所以灯一直为 1。然后tount计数满了,就到第一个 if,此时tcount=0,清空,然后direct为0,所以dutyfactor++为1。此时,灯设置为0,有一次,灯设置为1,有99次。然后tount计数满了,就到第一个 if,此时tcount=0,清空,然后direct为0,所以dutyfactor++为2。此时,灯设置为0,有两次,灯设置为1,有98次。一直下去,灯设置为0的次数增加,设置为1的次数减少。然后direct 设置为1,一直下去,灯设置为0的次数减少,设置为1的次数增加。然后重复。
所以dutyfactor就像是一个界限一样,举个例子:双手合并,左手不动,右手向右移动,此时,你的右手就是dutyfactor,而右手和左手的中间的空隙在不断的增加,到一个点后,开始右手回去,此时中间的空隙在不断地减少。然后重复。