簡體   English   中英

多次調用一個函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM