大侠帮我解释一下while和if的区别,看这个例子。
你现在代码中都没有IF语句啊!!!
源程序是这样的,然后按照上述改动。
试试这个 temp = P3_5 ;
whlie( 1 ) {
if( temp != P3_5 ) {
number ++ ;
temp = P3_5 ;
}
} ;
这样对上升沿和下降沿都计数。
这个算法不错,但请问我跟的帖子的if与while为什么不能互换?| 以下是引用yharbour在2003-9-4 12:48:40的发言: 试试这个 int temp ; temp = P3_5 ; |
while可以循环执行(多次),if是判断(单次执行)!可以改为
请问我用中断显示来计数的话,用此程序为什么发现计数不正确。
不知你说的“用中断显示来计数”是什么意思
就是说计数的值的变化用中断显示程序在数码管表示出来。| 以下是引用yharbour在2003-9-5 22:28:54的发言: 不知你说的“用中断显示来计数”是什么意思,能明白一点吗? |
用中断来显示时,中断不知会发生在什么时候
那就是说我在发生电平转换时先禁止中断,再计数再开中断,对吗| 以下是引用yharbour在2003-9-6 9:49:52的发言: 用中断来显示时,中断不知会发生在什么时候,对计数的值有很大的影响,因为可能引脚的电平刚变化,计数还没完成中断就发生了,你可以在计数过程中禁止中断,等到你要的信号沿到来后,在开中断,但是这只能在学习中使用,平时做系统时我们不会这样做。我们可以要使用定时计数器或事件捕捉功能来完成。 |
还有你所说的事件捕捉功能是什么意思,在这个程序中该如何应用。谢谢。
先纠正一个错误,事件捕捉功能不能在这里用。最好用计数器。
帮我看一下这个程序,到底怎么解决
void sinit(void)
关键是TMOD要正确,管Timer1 的是高4位。
我把程序改成这样,你看看
TMOD的初始化还是错了