2

Jack Ganssles debouce tutorialのコードを使用しており、Texas Instruments Code Composer Studio v5.5 (Eclipse ベース) を使用して MSP430 で動作させようとしています。MAXCHECKS という定義値を使用している整数配列に問題があります。

#define MAXCHECKS 8;
int Debounced_state;            // Debounced state of the switches
int state[MAXCHECKS];           // Array that maintains bounce status
int Index = 0;                  // Pointer into state

この行int state[MAXCHECKS]; 2 つのエラー #17 が期待される "]" と #171 が期待される宣言をスローします。MAXCHECKS を 8 または 10 の値に変更すると、スイッチのデバウンスは行われませんが、コードのビルドとロードは正常に行われますが、タイマーをまだ設定していないので、これに取り組むことができます。

define と変数が動作するコードは次のとおりです。

int i,j;
state[Index] = (P1IN & 0x0088);
++Index;
j = 0xFF;

for(i=0; i<MAXCHECKS; i++)
{
    j &= state[i];          
}   

Debounced_state = j;            
if (Index>=MAXCHECKS)
{
    Index = 0;
}

それは私が見逃しているものに違いないと思いますが、現時点では不明なので質問はありますか?

4

1 に答える 1

6

マクロ定義の末尾にあるセミコロンを削除します

#define MAXCHECKS 8;

プリプロセッサは、問題の行を次のように展開します。

int state[8;];

これにより、コンパイラエラーが発生します。

于 2014-09-06T10:13:50.830 に答える