[英]Calling a function more than once
因此,我正在使用CCS編譯器對PIC進行編程。 我正在使用計時器中斷,此中斷調用了我編寫兩次的函數,稱為計時器。 這是怎么回事
void timer2_isr()
{
j++;
l++;
z++;
if (j==1)
{
timero=1;
btndly=1;
j=0;
}
user1= chronometer(x, l);
user2= chronometer(pad.deger, z);
}
此函數返回一個struct並接受2個整數作為參數。 當我只調用一次函數時,它工作正常。 但是,在這種情況下,當我兩次調用該函數時,user2等於user1是什么,並且代碼甚至無法正常工作。 知道為什么嗎?
chrono chronometer(int enable, int milicounter)
{
chrono time;
if(enable==1 && milicounter>=25) // Eğer kronometre aktif haldeyse
{
milicounter=0;
time.sec++;
if(time.sec==60)
{
time.sec=0;
time.min++;
}
if(time.min==60)
{
time.min=0;
time.hour++;
}
if(time.hour==24)
time.hour=0;
}
return time;
}
似乎您開始使用time struct而不重置其成員,從而導致了意外的結果..即使以某種方式進行了初始化..它沒有引用輸入參數,所以顯然結果將是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.