首页 > 解决方案 > Arduino 不运行

问题描述

下面的代码已编译,但不会在终端生成任何输出。使用的数据存储器为 9%,代码为 5%。仅当 MAX 变量设置为小于 1769 的值时,Arduino 才会生成输出。

下面的算法用于从上限生成素数。我知道 Arduino 平台没有这个目的,但这个项目是记忆研究的一部分。

#define MAX 2000

void setup() {
  int i,j;
  int limite;
  char ehprimo[MAX];   
   
  Serial.begin(9600);

  for(i=2;i<MAX;i++) ehprimo[i]=1;
  limite = (int)sqrt(MAX);
  
  for(i=2;i<=limite;i++) {
    if(ehprimo[i]) {
      for(j=i*i;j<MAX;j=j+i)
        ehprimo[j] = 0;
    }
  }

  for(i=2;i<MAX;i++) {
    if(ehprimo[i]) {
      Serial.print("\t");
      Serial.print(i);
    }
  }
}

void loop() {
 
}

标签: arduinoarduino-unoarduino-c++

解决方案


你的内存不足了。

https://www.arduino.cc/en/tutorial/memory

仅您的 char 数组就会消耗 2000 字节的可用 2048 字节 SRAM。

当然,您还需要其他变量的内存,这会导致您的程序以更小的 MAX 值失败。


推荐阅读