arduino - 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 数组就会消耗 2000 字节的可用 2048 字节 SRAM。
当然,您还需要其他变量的内存,这会导致您的程序以更小的 MAX 值失败。
推荐阅读
- symfony - 下拉菜单中的默认值
- c# - 带有 Prism 库的 Xamarin.Forms 应用程序中的多个 NavigationStack
- javascript - 浏览器 Javascript:将 Json 压缩为 gzip 并上传到 S3 预签名 URL
- amazon-web-services - 是否可以将网络负载均衡器用于使用 UDP 协议的 ECS 服务?
- laravel - Laravel 和 Vuejs axios 删除没有错误但没有删除
- sql-server - 声明具有负长度 varchar 列的表
- dart - Future.then() 执行得太早
- amazon-ec2 - AWS EC2 上的 WebRTC 与 2 个不同网络上的 AWS EC2 上的 TURN 服务器,错误:ICE 失败,添加 STUN 服务器
- c# - 如何添加与列表无关的新值
- rust - 为什么要做dbg!和 println!("{:?}") 显示不同的输出?