Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Arduino编程中的错误_C++_Arduino - Fatal编程技术网

C++ Arduino编程中的错误

C++ Arduino编程中的错误,c++,arduino,C++,Arduino,我收到以下错误: 错误:在“(”标记之前需要构造函数、析构函数或类型转换 以下是我编写的源代码: void setup() { pinMode(1,OUTPUT); [...] pinMode(13,INPUT); } int i = 1; bool pushed = digitalRead(13); bool val = 0; randomSeed(analogRead(0)); void loop() { if (

我收到以下错误:

错误:在“(”标记之前需要构造函数、析构函数或类型转换

以下是我编写的源代码:

   void setup() {
     pinMode(1,OUTPUT);
   [...]
     pinMode(13,INPUT);
   }
   int i = 1;
   bool pushed = digitalRead(13);
   bool val = 0;
   randomSeed(analogRead(0));
   void loop() {
     if (pushed == 1) {
       for (i = 1; i < 9; i++) {
         val = random(2);
         digitalWrite(i,val);
       }
     }
   }
void setup(){
pinMode(1,输出);
[...]
pinMode(13,输入);
}
int i=1;
bool push=digitalRead(13);
布尔值=0;
随机种子(模拟读取(0));
void循环(){
如果(推送==1){
对于(i=1;i<9;i++){
val=随机(2);
数字写入(i,val);
}
}
}
变量和设置正常;错误位于
for
行中。有人能告诉我如何解决此问题吗

(编辑:添加了脚本的开头,对演示文稿感到抱歉(这里的第一个问题)

(编辑:看起来错误不在“i”定义中。如果有帮助的话,我正在使用Arduino UNO SMD版本(以及IDE的Arduino alpha 0022 linux版本)) 编辑:好了,伙计们,现在解决了。看来我的Arduino IDE版本没有完全下载,我把
randomSeed
放错地方了(它应该在
设置
功能中。)(当我在更新之前将它放入
设置
函数时,它显示了一条错误消息,说/opt/arduino/lib/math.h缺少了一些东西(或者类似的东西,我没有完整的消息))。感谢您的帮助,我希望我能很快在arduino中帮助您

for (int i = 1; i < 9; i++)

同样在C89中,所有声明都必须在块的左大括号后面,不能随意混合声明和语句。

在C中(C99之前),不允许在
for
循环的第一个表达式中定义新变量。请尝试在函数顶部声明变量
i

您似乎有一条语句
randomSeed(analogRead(0));
浮动在
设置()和
循环()之间
函数定义

将其和任何其他IO操作移动到
setup()
功能的末尾,以便在设置管脚方向后阅读:

   int i = 1;
   bool pushed; 
   bool val = 0;

   void setup() {
     pinMode(1,OUTPUT);
   [...]
     pinMode(13,INPUT);

     pushed = digitalRead(13);
     randomSeed(analogRead(0));
   }

   void loop() {
     if (pushed == 1) {
       for (i = 1; i < 9; i++) {
         val = random(2);
         digitalWrite(i,val);
       }
     }
   }
inti=1;
布尔推;
布尔值=0;
无效设置(){
pinMode(1,输出);
[...]
pinMode(13,输入);
按下=数字读取(13);
随机种子(模拟读取(0));
}
void循环(){
如果(推送==1){
对于(i=1;i<9;i++){
val=随机(2);
数字写入(i,val);
}
}
}
这将只需按下一次即可读取插脚13的值(例如,在通电时您握住一个按钮);根据您希望它执行的操作,您可能希望将读取移动到
循环()的开头,以便在按下按钮时写入随机值。

\define pinMode1 1
#define pinMode1 1
#define pinMode2 13

bool pushed;
bool val = 0;

void setup() {
  // Declare OUTPUT pin.
  pinMode(pinMode1, OUTPUT);

  // Declare INPUT pin.
  pinMode(pinMode2, INPUT);

  // Set digitalRead().
  pushed = digitalRead(pinMode2);

  // Initializes the pseudo-random number generator.
  randomSeed(analogRead(0));
}

void loop() {
  if (pushed == 1) {
    for (int i = 1; i < 9; i++) {
      val = random(2);
      // Set i to HIGH or LOW.
      digitalWrite(i, val);
    }
  }
}
#定义pinMode2 13 布尔推; 布尔值=0; 无效设置(){ //声明输出引脚。 pinMode(pinMode1,输出); //声明输入引脚。 pinMode(pinMode2,输入); //设置digitalRead()。 按下=数字读取(pinMode2); //初始化伪随机数生成器。 随机种子(模拟读取(0)); } void循环(){ 如果(推送==1){ 对于(int i=1;i<9;i++){ val=随机(2); //将i设置为高或低。 数字写入(i,val); } } }
必须查看推送从何而来,因为for循环是fine@RussS:仅在c99中和之后才可以。@Als感谢您的更正!我完全放弃了您的新编辑。您的
{
}
有问题。请检查每个
{
都有相应的
}
和每个“}”都有相应的
{
。请记住,您不能在文件范围内调用函数。
randomSeed
调用属于哪个函数?请记住检查最合适的答案。只需在此处添加,C89中的所有声明都必须位于块的顶部。这在此处起作用,因为它位于块的开头(根据上面的上下文),但如果循环之前有其他语句,则通常情况下这可能不起作用。@FatalError yes,在答案中添加注释是有意义的。完成。
#define pinMode1 1
#define pinMode2 13

bool pushed;
bool val = 0;

void setup() {
  // Declare OUTPUT pin.
  pinMode(pinMode1, OUTPUT);

  // Declare INPUT pin.
  pinMode(pinMode2, INPUT);

  // Set digitalRead().
  pushed = digitalRead(pinMode2);

  // Initializes the pseudo-random number generator.
  randomSeed(analogRead(0));
}

void loop() {
  if (pushed == 1) {
    for (int i = 1; i < 9; i++) {
      val = random(2);
      // Set i to HIGH or LOW.
      digitalWrite(i, val);
    }
  }
}