将Arduino库用于独立MCU(ATMega328p

时间:2014-08-14 01:59:30

标签: arduino atmega atmelstudio

我想知道如何将Arudino库用于使用常规微处理器的项目,在我的例子中是ATMega328p。我只是在面包板上有一个PDIP处理器,而且我没有使用Arudino Uno或任何东西。我也不想使用setup()和loop()Arduino编程环境,但我确实希望能够下载并使用包含Arduino.h的EtherCard库。

我在Windows 8.1上使用Atmel Studio 6.2。我发现这篇文章Using the Arduino libraries for regular AVR code包含了很好的回复,但它具体(我认为)适用于linux环境。有没有人使用Arudino库进行非arduino项目?如果是这样,我如何在Atmel Studio中正确包含它们?

提前感谢你提出的任何意见。

2 个答案:

答案 0 :(得分:0)

Arduino树中有两组库。第一个通用AVR库(C)和第二个Arduino库(C ++)。 Arduino扩展了AVR库,提供了一些隐式功能时钟(msec,sec),流,UART缓冲处理程序等。模糊的 .ino 扩展文件被复制到 .cpp 并添加了 #include“Arduino.h”行。从我的角度来看,Arduino IDE是错误的想法,因为它不使用普通的make文件,但它在java中以某种方式硬编码(仅使用外部avr-gcc)。

同样“待实现” loop() setup()似乎是Arduino的 main.cpp 隐含引入的模糊概念每个项目都有联系。

但我正在使用AVR和Arduino库并使用avr-gcc(安装在Arduino树中)进行编译。我建议使用更新鲜的gcc(4.7左右,除非它导致Avrstudio中的问题为Avrstudio 4.19 toolchain using gcc 4.7.x)。我有自己的Makefile并在Windows XP中使用。您还可以覆盖使用 属性((弱))实现的一些Arduino函数。

答案 1 :(得分:0)

请连接ATMEGA USBASP编程器和ATMEGA328控制器,如下所示:http://www.learningaboutelectronics.com/images/USBASP-6-pin-wiring-to-AVR-Atmega328-chip.png

然后将ATMEGA Uno固件代码写入控制器。它可以在这里找到 - https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders/optiboot 在那里下载328 hex版本。如果您已成功安装Arduino Sketch IDE,这些引导加载程序也将在您的计算机中可用。现在使用程序员将十六进制代码写入微控制器,从那时起,控制器将作为arduino uno工作。连接基本晶体并使用面包板电路,如下所示。 enter image description here

现在,您继续编程并加载arduino sketch。