Answers:
我同意zklapow,但也可以查看有关AVR Freaks的项目部分。这就是我在arduinos之前的一天所学到的。此外,几乎可以肯定,您必须阅读芯片的数据表才能完成所有有用的事情。没有很好的功能,例如读入模拟引脚,因为其中有太多参数,而arduino环境对您隐藏了。让我举一个例子:
int ledPin = 13; // LED connected to digital pin 13
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}
大致类似于以下C(未经测试):
int main(void) {
// I just randomly picked pin 6 on PORTB, this may not be the same on an arduino
DDRB = (1<<6); // set pin to output in data direction register
int i; // have to do this outside the for loop because of C standard
while(1) {
PORTB |= (1<<6); // send pin 6 high and leave other pins in their current state
for (i=0; i<10000; i++); // delay
PORTB &= ~(1<<6); // send pin 6 low
for (i=0; i<10000; i++); // delay
}
}
当然,某些库中有延迟函数,而其他库中可能有输出函数,但是习惯于编写这样的代码。您可能知道所有PORTB和DDRB内容的唯一方法是阅读数据表。对此我深感抱歉,但没有足够的人意识到数据表是提供信息的金矿。
您还应该签出Eclipse for C / C ++和AVR-Eclipse插件。对我来说完美无缺,尤其是在使用背包时。我使用它大约一年了,我真的很喜欢它。
我也使用ObDev的CrossPack。它是编写AVR-GCC C代码所需的所有工具的很好的捆绑。它们与标准Arduino安装中存在的工具相同,因此有时我会使用Arduino构建系统的勇气来编写普通的AVR-GCC代码。
通常,当我编写C代码时,我使用的“ IDE”是文本编辑器,命令行命令和Makefile。这样我才更有效率。我打开了一个窗口,它是文本编辑器(emacs),另一个窗口是编译窗口,第三个或第四个窗口是串行监视器或类似程序。但是所有这些操作都可以在单个命令行窗口中完成,在这种情况下,命令看起来像:
%emacs foo.c [编辑文件] %make [编译代码] %使闪存[上传到芯片] %screen /dev/tty.usbserial 9600 [与芯片交谈] ...然后根据需要重复...
另外,您可能想查看SmileyMicros.com。他在Arduino之前就基于AVR Butterfly板写了一本关于AVR GCC入门编程的非常不错的书,并且此后一直在更新他的示例以结合Arduino。比较一下AVR C编程是如何在比Arduino中更复杂的芯片上完成的,这是一个很好的比较。
由于您一直在使用Arduino,因此您已经安装了所需的一切。我使用Makefile从命令行编译Arduino草图。我还编译没有Arduino引导程序的代码。
我用于为我的主板编译Arduino引导加载程序的Makefile位于http://wiblocks.luciani.org/docs/app-notes/bootloader.html。 您可以对其进行修改以编译程序,而不是ATmegaBOOT_xx8.c文件。
我的Makefile是从在此站点上找到的文件中修改的-http: //mjo.tc/atelier/2009/02/arduino-cli.html
在Twitter上回答相同的问题时(昨天),我在dorbotpdx上遇到了一个makefile。参见http://dorkbotpdx.org/blog/ax/arduino_0017_makefile
http://arkku.com/misc/arduino_make.sh上还有一个文档齐全的shell脚本
我可能会使用Makefile而不是Shell脚本。做这个脚本的人在评论流程方面做得非常出色。只是为了了解流程而已。
我发现CodeLite(www.codelite.org)IDE不错且功能齐全。仍然,要对AVR微芯片进行编程,您需要创建自己的Makefile。
您可以尝试使用BeRTOS向导,它将创建一个BeRTOS项目和相关的Makefile,然后可以将它们与CodeLite一起使用。要闪烁目标,只需使用“ make flash”即可。我们每天都在Linux上工作,如果您还有其他问题,请在邮件列表中发布。免责声明:我是BeRTOS开发人员。
最好的问候,卢卡
如果您要求软件包系统安装avr-libc,则应该可以满足您的所有需求。我使用emacs作为我的IDE,因为,请参见用户名。
如果您想要模板makefile,请查看我在github上的一个项目,例如 https://github.com/unixbigot/pir-lite
在那个仓库中,avr-tmpl.mk是一个现成的makefile库(不是我写的)。您可以从主makefile中包含它,而只需定义具有的芯片,时钟速度和文件。我有一个副本,并将其包含在我所有的项目makefile中。
“制作程序”将调用avrdude下载代码。makefile还会在末尾打印出代码大小,因此您知道还剩多少空间。
我在本文的帮助下将“旧的” Dumanilove”编程为ISP:http ://arduino.cc/en/Tutorial/ArduinoISP在ATtiny的帮助下, 它同样可以很好地工作:http://hlt.media.mit.edu/? p = 1229
请注意,使用Arduino IDE 0022时,由于防止垃圾邮件,您需要将ArduinoISP草图升级到最新版本,我将该链接移至以下评论。
我在文本编辑器(vi)中进行了编程,并按照我链接的mit.edu文章中的说明使用avr-gcc进行了编译。
嗨,老兄,您仍然可以在ubuntu中使用avrstudio。思考您该怎么做.....
答案是只安装wine应用程序,然后用wine运行那些Windows软件。
Avr studio,proteus ...甚至Windows游戏也可以在Ubuntu酒中运行。
您甚至不必弄乱makefiles等等。(只需安装wine并开始使用)。
有许多网站可以使用avr MCU入门,例如Extremeelectronics,AVR教程等。只需在Google上进行搜索即可。
我将详细介绍如何在酒中安装avrstudio 4,因为avrstudio 5和6不能使用它,但是您可以使用linux中的虚拟盒甚至在虚拟盒上带有Windows的情况下运行avr stud 5和6。
打开Ubuntu软件中心,在搜索中键入wine,然后安装它。
然后获得avrstudio4的安装程序,并且您还需要安装win avr
试试这些链接
一个。avr Studio 4 http://mycomsats.com/blogs/download-atmel-avr-studio-4-free/
3.打开用于AS(Avr Studio 4)的安装程序所在的文件夹,然后右键单击,然后使用“ windows wine program loader”或“ wine application”将其打开。
4.然后,您需要单击下一个按钮,就像在Windows中一样。
5,然后再次与wine同样安装win avr(进入win avr设置....)。
6.从ubuntu软件中心下载经典菜单指示器。您将在五分钟之内了解它。
7,从经典菜单->葡萄酒->程序-> AVR工具
第六步是一个额外的步骤,因此您不必弄混avrstudio4可执行文件选项在wine文件夹中的位置。