Answers:
不,代码不会“消耗” MCU。通常,无论您做什么,都在执行大致相同水平的活动。甚至delay()
在“闲置”时也会做很多工作。
有一些命令可以减少CPU的工作-将其置于IDLE或SLEEP模式下-但是这些命令用于节省功率,而不是减少MCU的“磨损”。
当然,有些特定的事情的寿命有限,您只能使用有限的时间-诸如写入EEPROM和写入闪存之类的事情-因此您不想一直这样做。除此之外,不,无论您做什么,都不会使MCU耗尽。
不是。好吧,如果您运行20年,它可能会慢慢磨损....(像大多数其他物理产品一样)?至少它不依赖于代码的复杂性,而是依赖于同一存储区中完成了多少次写操作。而且,当它磨损时,它只会变砖,并且不会像使LED闪烁那样变成更简单的代码。
Arduino(Uno)具有三个内存部分。SRAM,FLASH和EEPROM。SRAM更像是逻辑晶体管的门。它不会因存储变量而耗尽。闪存和EEPROM由浮栅组成。当您写入新数据时,它们会慢慢磨损。从Ateml微控制器的数据表中,它指出:
闪存的耐久性至少为10,000个写入/擦除周期。(从第8.2章开始)
EEPROM的耐久性至少为100,000个写入/擦除周期。(摘自第8.4章)
但是,闪存是代码执行的空间。Arduino运行时不执行写操作。您只有在上传新代码时才写入FLASH存储器。因此,当您上传代码至少10,000次时,它会耗尽。
如果您真的想要,可以编写一个特殊的代码对FLASH存储器进行自我重新编程,通常是为了在Arduino关闭时保留变量数据。当您编写此类程序时,它会慢慢磨损,因为FLASH存储器的写入持久性不高。因此,即使您想在关闭Arduino的情况下也要保留数据,建议您使用寿命更长的EEPROM。
总而言之,它将通过重写FLASH或EEPROM存储器而不是通过代码执行来磨损。
...(或其他任何微控制器)...
其他答案很好,但有一个小例外。
铁电RAM(FRAM)是一种存储器,结合了闪存和EEPROM的非易失性,SRAM的可写性以及DRAM的密度。
但是,对FRAM的读操作对FRAM中存储的数据具有破坏性,而对FRAM构造本身的写操作则具有破坏性(并且由于读取数据会破坏数据,因此每次都必须将其写回)。如果您的代码位于FRAM中,则运行它会及时耗尽MCU的电量。但是,鉴于FRAM具有数亿亿次的写入耐力,因此在设备生命周期内,由于FRAM,MCU不太可能无法工作。
使用FRAM的MCU的示例包括TI的MSP430FRxx系列。
可能不是。随着时间的流逝,Atmel芯片可能会变热(即使延迟也不能阻止这种情况),但是,如果有可能释放热量,我认为没有问题。但是大多数情况下,只有超频会导致严重的问题,或者在完全封闭的盒子中或在高温环境中使用Arduino。
相比之下:许多计算机可以在不关闭的情况下运行多年,从这个意义上说,只要可以消除产生的热量,Atmel(芯片)就没有什么区别。
您可以在此处在Atmels中阅读有关热传感器的更多信息:内部温度传感器
delay
相同的处理能力。
delay
,它会使CPU旋转。当然,这是有代价的:)