通过 Arduino IDE 迁移到 AVR 工作室(或任何其他更好的选择?)会更好。感觉它是如此简单和幼稚。我需要知道专家的想法和选择..
坚持使用 Arduino IDE 是否可取?
这很简单,因为每个人都可以访问它,而且这很有效:每个人和他的妹妹都可以对 Arduino 进行编程。
如果你觉得你可以处理更像真正编程的东西,我当然会这样做。您将不得不编写更多代码,但也将拥有更多控制权。重要的一点:Arduino 库的效率非常低:函数可以DigitalWrite
快50 倍。DigitalRead
使用例如 AVR Studio 的一个巨大优势是能够使用在 Arduino 出现之前为 ATmega168/328 制作的所有库。在 AVRfreaks 和数百个其他爱好网站上可以找到 FFT 库、使用您购买的一些不起眼的 IC 的库、基本的数字滤波器等等。
如果您了解如何使用标准 AVR 库并研究微控制器的数据表(或教程),您还可以编写更高效的代码。对于简单的应用程序,arduino 代码易于编写和调试。但是,有时您希望更有效地控制时间。AnalogRead()
需要 100µs 来执行。这对应于10ksps(每秒数千个样本)。如果您访问 ATmega168/328 的低级代码,您可以轻松地将其提升到70ksps 。当然,您可以在 Arduino IDE 中完成所有这些工作,但在某些时候您的项目可能会变得过于复杂,并且您会想要编写自己的函数库并具有更快的功能。AVR Studio 可能更适合这种情况。
此外,如果您想对 Arduino 提供的 AVR 芯片以外的任何 AVR 芯片进行编程,您将需要一个程序员和一个不同的 IDE。使用 1kB 代码的小项目可以在 ATtiny 上完成。您可以以单个 ATmega328 的价格购买十几个。这些芯片很便宜,并且具有 Arduino 的大部分功能:I2C、SPI、ADC。您甚至可以找到添加 USB HID 接口的库!没有串行驱动程序或任何东西!
就个人而言,我首先在 Arduino IDE 中编写代码,没有进行代码优化。如果它有效,那么该代码可以很容易地转录成标准 C++ 库并提高效率。
大多数回复都集中在使用 Arduino 板作为标准 AVR 板。但是您也可以使用更高级的 IDE,并且仍然可以利用 Arduino 编码和内置库的简单性(以及上面提到的缺点)。EngBlaze 刚刚对此做了一个教程:教程:使用 Atmel Studio 6 和 Arduino 项目
Arduino IDE 以代码效率换取小型项目的便利性和开发速度。由于专家也有最后期限,因此使用 Arduino IDE 进行快速概念验证或帮助调试另一个项目是完全可以接受的。
如果你想专攻嵌入式软件开发,你必须能够使用更强大的开发工具,比如 AVR Studio,或者 avr-gcc 以及你喜欢的 IDE。
如果您打算在具有小内存和/或低功耗要求和/或高性能的系统上工作,那么除了掌握开发工具之外,学习微控制器的内部工作原理和了解一些组装绝对是一个加分项。