更新问题不那么模糊。
我计划按时间记录传感器数据,所以像sqlite这样的东西将是完美的,但它需要太多的资源像atmega328p。大部分的搜索将在uC之外完成。
别人用什么?纯文本文件?XML ?更复杂的数据结构?
感谢您的反馈。知道别人在用什么是很好的。我决定序列化我的数据结构并将它们保存在二进制文件中,以暂时消除uC上的字符串处理。
几年前,我在类似的项目中使用过平面文本文件,但我相信它仍然是那种环境的好方法。由于您不需要在芯片上处理数据,因此您希望它尽可能高效(尽可能少的开销)。
但是,如果您想要更大的灵活性并且不太关心空间,也许保存JSON对象会更好,其中每个字段都被清楚地标识。创建对象的开销很小,但允许您添加和删除字段,而无需在解释端执行复杂的逻辑。我会选择JSON而不是XML,因为你只有大约一半的开销(在空间上,可能在处理上)。
对于328这样的小型微控制器,确定空间要求是非常重要的。
每条记录有多大?您想要存储多少条记录?你如何从微控制器上获取记录?
和Doug一样,我通常使用平面文本来存储数据。因此,如果我每天存储一个值,则每条记录可能包含年份、年份中的某一天和一个值。文件看起来像:
11,314,100<cr>
11,315,99<cr>
11,316,98<cr>
11,317,220<cr>
您可以存储大约90-100条记录,要求您每三个月转储一次数据
如果您需要更多的1kEEprom保存(200个5字节记录,100个10字节记录或类似),那么您将需要使用IC, SD或Flash的额外内存。
如果你想把内存拔下来插到电脑上,那么SD或Flash是最好的。
您可以使用来自FTDIChip.com的vinculum芯片来简化将fat文件写入闪存驱动器。