Rng*_*Tng 17 compression embedded algorithm atmega arduino
我想用ATmega168/ATmega328微控制器将大量数据存储到我的Arduino上,但不幸的是,只有256 KB/512 KB的EEPROM存储空间.
我的想法是利用压缩算法去除大小.但是,我对压缩算法的了解非常少,而且我对即用型库的搜索失败了.
那么,是否有一种优化存储大小的好方法?
Gre*_*ill 16
您可以查看LZO算法,该算法设计为轻量级.我不知道AVR系统是否有任何实现,但它可能是你自己可以实现的.
您可能对芯片上的EEPROM中可用的存储量有些误解; 根据数据表我有EEPROM尺寸是:
ATmega48P:256 ATmega88P:512 ATmega168P:512 ATmega256P:1024
请注意,这些值以字节为单位,而不是您在问题中提到的KB.无论如何,这不是"shitload".
Nic*_*k T 7
AVR最多只有几千字节的EEPROM,很少有超过64K的闪存(没有标准的Arduinos).
如果您需要存储并且很少修改,例如图像,您可以尝试使用Flash,因为有更多空间可供使用.对于简单的图像,一些粗略的RLE编码会有很长的路要走.
压缩任何更随机的东西,例如记录的数据,音频等,将为AVR带来巨大的开销,你将有更好的运气获得一个串行EEPROM芯片来保存这些数据.Arduino的网站上有一个与64K芯片接口的页面,听起来如此.如果您需要更多,请查看与带有SPI的SD卡接口,例如在此音频屏蔽中
归档时间:
16 年,3 月 前
查看次数:
19639 次
最近记录:
9 年,2 月 前