我正在使用Jack Ganssles debouce tutorial中的一些代码,并尝试使用德州仪器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 expect#34;]"和#171期待一个声明。如果我将MAXCHECKS更改为8或10的值,则代码构建并加载正常,尽管它不会对开关进行去抖动,但这是我可以处理的事情,因为还没有设置定时器。
define和variables使用的代码如下
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;
}
我认为这一定是我缺少的东西,但此时不确定这个问题?
答案 0 :(得分:6)
删除宏定义末尾的分号
#define MAXCHECKS 8;
预处理器将有问题的行扩展为
int state[8;];
导致编译错误。