2

killnoise 関数が呼び出されても実行されず、プログラムが常にそれに到達する組み込み C プログラムで作業していますが、この関数の出力で値をチェックすると、何も起こらなかったことがわかります。

void KillNoise( int* array, int size )
{
  int k;

    for (k=0;k<size;k++)
    {
       if (array[k] < 20)
           array[k] = 0;
    }

}

ここに私がそれを呼ぶ場所と方法があります:

void UX_zswDecide( void )
{
    float __xdata centerOfMass[UX_NUM_SENSORS];
    float __xdata vectx, vecty, module, tg;
    int __xdata i,j;

    KillNoise( UX_bigUpArray,    NUMPOINTS );
    KillNoise( UX_bigDownArray,  NUMPOINTS );
    KillNoise( UX_bigLeftArray, NUMPOINTS );
    KillNoise( UX_bigRightArray,  NUMPOINTS );

/* the rest of the function */ 
}

ここで、NUMPOINTS、biguparray、bigleftarray ... は以前に宣言されたグローバル変数です。

int   __xdata UX_bigUpArray[100];

int   __xdata UX_bigDownArray[100] ;

int   __xdata UX_bigLeftArray[100];
int   __xdata UX_bigRightArray[100] ;

#define NUMPOINTS 100 

ご協力いただきありがとうございます(別の機能で同じ問題に直面しています)

4

1 に答える 1

1

パラメータ__xdataの宣言で必要だと思いますarrayKillNoise

void KillNoise( int* __xdata array, int size )

または似たようなもの。

于 2012-04-30T10:11:33.930 に答える