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() {
 
}

解决方法

您的内存不足。

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

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

当然,您还需要存储其他变量,这会导致您的程序因MAX值较小而失败。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...