[英]Interpretation of an integer division - C code
我有以下 C 代碼:
int count = 0; // relative time
int T1 = 20; // period 1 in ms
int T2 = 50; // period 2 in ms
int T3 = 80; // period 3 in ms
while (1) {
if (count%T1 == 0) function1();
if (count%T2 == 0) function2();
if (count%T3 == 0) function3();
count++;
if (count == T1*T2*T3) count = 0;
delay(1); // wait for 1 ms
}
我想知道有整數除法 count%T1==0 而不是 count==T1 的原因。 也許是考慮到周期 T1 可能不是整數?
先感謝您。
從你發布的代碼來看,它看起來像這樣:
function1
將每 20毫秒調用一次function2
將每50 毫秒調用一次function3
將每80 毫秒調用一次這里的關鍵字是every 。
我們以function1
觸發器為例。
如果你寫count == T1
,則function1
只會在重置前執行一次,當count
等於20 時。
如果您想每 20毫秒運行一次function1
,您會期望它在 20 毫秒、40 毫秒、60 毫秒等處執行。
要將這個概念轉換為代碼,您可以通過模運算符檢查計數器是否可以被20整除,因此是count % T1
表達式。
相同的概念適用於T2
和T3
檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.