好了,我已经在Arduino上玩了很多,我对此感到非常满意。现在所做的任何事情都比在Arduino方面更多地学习电子技术。
我的下一步学习是什么?Arduino是编程器/控制器的组合,所以大概我需要断开该链接并开始使用与控制器分离的控制器芯片。有人可以指出我正确的方向吗?
好了,我已经在Arduino上玩了很多,我对此感到非常满意。现在所做的任何事情都比在Arduino方面更多地学习电子技术。
我的下一步学习是什么?Arduino是编程器/控制器的组合,所以大概我需要断开该链接并开始使用与控制器分离的控制器芯片。有人可以指出我正确的方向吗?
Answers:
这是使用AVR和C的一些技巧。
我同意Joby的观点-Arduino很棒,但是我总是被周围的框架所扼杀。我将继续在您的Arduino上使用直接C语言,并从头开始构建它们提供的许多库功能。我通常更喜欢深度而不是广度-不要仅仅通过使用提供的更多框架来开始使用另一个微控制器系列。了解更多有关如何自己实现其中一些功能的信息。
从一个有效的程序开始,并用您自己的版本一次替换一个函数的Arduino库调用。如果您还没有的话,您将学到很多有关控制寄存器,时序,位操作等方面的知识。深入阅读ATMega328数据表-您所需的一切都在那里。
尝试使用其他IDE,例如AVR Studio或Code :: Blocks。了解GCC工具链。尝试更高级的编码技术-单元测试,覆盖率,性能分析,棉绒/毛刺检查。将RTOS放在Arduino上。
程序员/控制器的组合并不是软弱的标志,而只是设计选择。唯一的“弱点”可能是缺乏在线调试。购买AVR Dragon,价格为$ 50美元。
我认为接下来要学习的内容取决于Arduino无法完成的操作。就是说,我对类似的芯片进行编程以完成相同的工作并没有多大意义,但是手段却比较困难。
这是Arduino的一些弱点:
我可以想象两个方向:
如果您评论哪个方向更有吸引力,我可以添加更多详细信息。(第二个绝对便宜。)
首先,您可能希望从以Arduino为平台转变为以AVR为平台。即,了解如何为您的项目而不是Arduino编程/使用原始的AVR微控制器。这样,您将不必为您所做的每个项目或与朋友一起进行的项目购买另一个Arduino板。这是一个相当简单的步骤(Arduino只是传统的Atmel AVR微控制器,但带有特殊的板和引导加载程序),但是对于向朋友出售/提供项目来说,这是一个很大的步骤。工具链也类似:将avr-gcc或avr-g ++与make结合使用,并结合编程实用程序来安装程序。