不止一次调用一个函数

时间:2013-03-23 18:43:50

标签: c pic

所以我正在使用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);
}

此函数返回一个结构,并将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;
}

1 个答案:

答案 0 :(得分:0)

您似乎开始使用时间结构而不重置其成员,从而导致意外结果。 即使它以某种方式初始化..它没有引用输入参数,所以显然结果将是相同的..