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 的值,则代码构建和加载正常,尽管它不会对开关进行去抖动,但这是我可以处理的事情,因为尚未设置计时器。

定义和变量使用的代码如下

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 回答