2016-12-06 14 views
0

whileループの問題があります。セミコロンでのwhileループの意味

while(!PORTB.F4);   //Waiting for Echo 
T1CON.F0 = 1;    //Timer Starts 
while(PORTB.F4);   //Waiting for Echo goes LOW 
T1CON.F0 = 0;    //Timer Stops 

while(!PORTB.F4){ 
    T1CON.F0 = 1;    
} 
while(PORTB.F4){    
    T1CON.F0 = 0; 
}    
+6

んが、もちろん、彼らは同じではありませんありません。すべての基本的なCの本はあなたにそれを伝えるだろう。いくつかの簡単なテストを実行すると、そのことがわかります。 – kaylum

答えて

4

while(!PORTB.F4);、この等しい基本的に "とは、真/等しく返すまでPORTB.F4を実行する" を意味しません。ここで

は(私が思う)あなたのコードがコメントに基づいて、何をするかです:

while (!PORTB.F4);   // Wait for PORTB.F4 to equal 1 (true) 
T1CON.F0 = 1;    // When PORTB.F4 equals 1, set T1CON.F0 to true 
while (PORTB.F4);   // Wait for PORTB.F4 to equal 0 (false) 
T1CON.F0 = 0;    // When PORTB.F4 equals 0, set T1CON.F0 to false 
+0

お返事ありがとうございます。 –

関連する問題