【发布时间】:2016-02-21 15:57:35
【问题描述】:
我需要帮助来调试我刚刚键入的 arduino 程序。显示的错误是: - 1.exit status 1 指数没有数字(在 "char INT_ENABLE = 0*2E" 行找到)。 该程序的目的是在通过 adxl345 检测到不活动时触发蜂鸣器并关闭继电器开关,当检测到活动时执行相反的操作。 我在下面提供我的程序代码。检查并帮助我纠正这个问题以及您在我的程序中可能发现的任何其他问题。
#include <SPI.h>
int cs = 10;
int intr = 2;
int buzzer = 4;
int relay = 5;
int su = 1;
int intr1
pinmode (buzzer,OUTPUT);
pinmode (relay,OUTPUT);
char POWER_CLT = 0*2D
char DATA_FORMAT = 0*31
char DATAX0 = 0*32
char DATAX1 = 0*33
char DATAY0 = 0*34
char DATAY1 = 0*35
char DATAZ0 = 0*36
char DATAZ1 = 0*37
char THRESH_ACT = 0*24
char THRESH_INACT = 0*38
char TIME_INACT = 0*26
char INT_ENABLE = 0*2E
char INT_MAP = 0*2F
char ACT_INACT_CTL = 0*27
char INT_SOURCE = 0*30
char values[10];
char output[20];
int x, y, z;
char inactivityevent = 0;
void setup()
{
SPI.begin();
SPI.setDataMode(SPI_MODE3);
Serial.begin(9600);
pinMode(cs,OUTPUT);
digitalWrite(cs, HIGH);
attachInterrupt(digitalpintointerrupt(intr),interruptHandler,RISING);
writeRegister(DATA_FORMAT,0*01);
writeRegister(POWER_CTL,0*08);
writeRegister(INT_MAP,0*F7 && 0*EF);
writeRegister(THRESH_INACT,1);
writeRegister(TIME_INACT,0);
writeRegister(ACT_INACT_CTL,0*0F);
writeRegister(INT_ENABLE,0*08);
readRegister(INT_SOURCE,1,VALUES);
}
void interrupHandler()
{
read register (INT_SOURCE,1,values);
}
void loop()
{
intr1=digitalread(intr);
if ( intr1==high)
{
read register(DATAX0,6,values);
x = ((int)values[1]<<8|(int)values[0]);
y = ((int)values[3]<<8|(int)values[2]);
z = ((int)values[5]<<8|(int)values[4]);
if ( x<=15 && x>=-15 && y<=10 && y>=-10 && z>=75 && z<=90)
{
digitalwrite(buzzer,HIGH);
digitalwrite(relay,LOW);
}
else
{
for (int i=0;i<=90;i++)
{
delay (2000);
if (intr == LOW)
{ break(); }
if (i==90)
digitalwrite(relay,LOW);
}
}
while (su=1)
{
if (intr==LOW)
{
digitalwrite(buzzer,LOW);
digitalwrite(relay,HIGH);
break();
}
}
}
}
【问题讨论】:
-
十六进制常量的语法不正确 - 它应该是 0x,而不是 0*(X 不是乘号!)。你还有很多其他的语法错误。 C(和大多数其他编程语言)对语法非常挑剔,你不能偏离语言规范(不像英语)。
-
感谢一百万的更正。我自己研究了这个,显然我弄错了。我使用在这个站点上找到的一个程序作为基础程序,并尝试从那里构建一个。下面提供了链接。如果您能帮我纠正大部分语法错误,那将非常有帮助。 stackoverflow.com/questions/22701400/…
-
您在那里输入了代码,但有很多错误。我建议再次输入,但要非常精确地输入大小写、符号和“标点”字符。
-
谢谢你的关心。我会记住这一点的。
标签: arduino accelerometer