したがって、CCSコンパイラを使用してPICをプログラミングしています。タイマー割り込みを使用していますが、この割り込みは、2回書き込んだクロノメーターと呼ばれる関数を呼び出します。これがその方法です
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つの整数を取ります。関数を1回呼び出すだけで、正常に機能します。ただし、この場合のように、関数を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;
}