是否建议坚持使用Arduino IDE?


24

通过Arduino IDE迁移到AVR工作室(或其他更好的替代方案)更好吗?觉得它是如此简单和幼稚。我需要知道专家的想法和选择。


1
您为什么不尝试AVR工作室呢?只有你可以决定它是否适合你的需要的,什么是更快/更容易为
PetPaulsen 2012年

3
@PetPaulsen是的,我知道这是最好的方法。我会尽快(可能明天)进行。但是只是想知道别人怎么看。你可以学到很多东西更多的东西这样太..
阿努比斯

Arduino的Visual Studio的专业插件最近进行了更新,以支持爱特梅尔Studio的6.1。安装不到10分钟,可以打开,编辑,编译,上载任何Arduino草图以及许多其他功能,例如串行监视器,示例资源管理器和可选的Arduino USB调试器
Visual Micro

Answers:


19

使用例如AVR Studio的巨大优势是能够使用Arduino诞生之前为ATmega168 / 328制作的所有库。FFT库,使用已购买的晦涩IC的库,基本数字滤波器等,以及更多信息,可以在AVRfreaks和数百个其他爱好站点上找到。

如果您学习如何使用标准的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 ++库并提高效率。


26

这很简单,因为每个人都必须可以访问它,并且可行:每个人和他的妹妹都可以对Arduino进行编程。

如果您感觉可以处理诸如Real Programming之类的问题我一定会这样做。您将不得不编写更多的代码,但也将拥有更多的控制权。重要的一点:Arduino库的效率非常低:像这样的函数DigitalWriteDigitalRead可以比原来快50倍


哇,从来没有意识到这是那个效率低下。我知道有开销,但是...哇。
多项式2012年

2
感谢您的消息DigitalRead/Write。从不知道..
Anubis 2012年

7
@Anubis-我是最近才发现JeeLabs的。他们拥有我见过的最好的博客之一。绝对推荐阅读。
stevenvh 2012年

2
有一个问题,前一段时间关于Arduino的数字IO加速:electronics.stackexchange.com/questions/22585/...
乔恩大号


3

Arduino IDE以代码效率为代价,为小型项目提供了便利和开发速度。因为专家也有最后期限,所以使用Arduino IDE进行快速概念验证或帮助调试另一个项目是完全可以接受的。

如果您想专门从事嵌入式软件开发,则必须能够使用功能更强大的开发工具,例如AVR Studio或avr-gcc和您首选的IDE。

如果您打算在内存较小和/或低功耗要求和/或高性能的系统上工作,那么除了掌握开发工具,了解微控制器的内部工作原理以及了解某种组装知识绝对是一件好事。


感谢您提供详细的答案,我更喜欢。我当然同意这一点,尤其是最后一点。尽管我是Atmel处理器的新手,但我对PIC的内部组织了解得更多,并且可以不使用so复杂的汇编代码。尽管这似乎有些困难,但是您可以了解微控制器的确切运行方式。我认为许多人会发现此答案有用。希望您能获得更多的投票,:D ..(这是您的第一个答案,是吗?)。
Anubis 2012年

2
如今,几乎没有任何情况可以使流利的汇编(无需经常查看文档即可进行编码)变得很有用。精通编译器,了解其纠结以及良好的选择非常有用。祝好运。
西尔万
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.