除了基础知识之外,我没有太多的编程经验,但我正在编程一系列灯光,以便在达到一定时间时打开和关闭。但是我不断地让程序内存使用率溢出:
程序内存使用:2066字节100.9%已满(内存溢出) 数据存储器使用:1个字节0.8%完整
任何人都可以指出我的方向是正确的,以及如何处理它?</ p>
答案 0 :(得分:0)
您可以在项目选项中更改代码的优化级别,并针对大小进行优化。
在Atmel Studio中选择Project - &gt; YourProjectName属性... - &gt;工具链 - &gt;优化 - &gt;优化级别:优化大小(-Os)。
这应该减少你的代码占用空间,但是它可能会对时序产生负面影响,但我认为在你的应用程序中微秒并不重要。
我还没有看到你的代码,但我建议你应该考虑你的应用程序的设计。对于这么简单的任务,可用的程序存储器应该足够,特别是当使用的RAM少于1%时。
答案 1 :(得分:0)
你必须使用PROGMEM
#include "avr/pgmspace.h"
const char s[] PROGMEM = { 0,0,0,0,0,0,0,0,0,0,0,0,0};
并阅读大量文件
a=pgm_read_byte(s+1(or 2,0,1,3,4,5...) );