所以我正在使用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;
}
答案 0 :(得分:0)
您似乎开始使用时间结构而不重置其成员,从而导致意外结果。 即使它以某种方式初始化..它没有引用输入参数,所以显然结果将是相同的..