从带有ATmega32的嵌入式C(ATmega AVR系列)开始


9

我周围有一块ATmega32板,我认为从微控制器开始是完美的。我曾经在嵌入式C中做过些小事(那是在我获得此板时),但是由于某些原因,流程停止了。现在我有两个问题:

  1. 对于AVR系列,以C开始的最佳免费资源是什么。我知道AVR-GCC,但正在寻找一些入门指南或免费书籍。

  2. 我应该直接跳到C还是先通过ASM?我看到周围有很多asm书。那么什么是更好的选择?

在Internet上搜索时,我在http://retrointerface.com/?p=30上找到了ATmega32的Arduino引导加载程序,但问题是我不愿对保险丝位和所有器件进行修补。这样做安全吗?

Answers:



6

AVR-libc的文档是信息的C对AVR单片机的重要来源。这是另一个

就个人而言,我更喜欢在C中工作。使用avr-libc可为您在AVR系列中提供良好的代码可移植性。但是,如果您在时间紧迫性方面做任何事情,则可能必须诉诸ASM。

如果您具有并行或“高压” AVR编程器,则可以随时对熔丝位进行重新编程。如果您使用的是串行(系统内编程,ISP),请注意不要禁用SPIEN或RESETENABLE位,因为这些将阻止您进行重新编程。

有可用的Arduino HV编程罩


4

我将从C开始。您可能偶尔需要一小段ASM,但对于大多数应用程序来说,都是如此。如果您决定自己滚动,引导程序例外。

Dave Mellis在MIT HLT Wiki上发布了AVR教程。他讨论了为ATmega328设置工具的问题,但似乎通用程度足以帮助您使用不同的设备。看到

http://hlt.media.mit.edu/wiki/index.php/AVR_Programming

Atmel站点上的库和示例似乎很好。我从他们的应用笔记中使用了许多片段。我在RTC代码中使用的I2C(TWI)库来自Atmel站点。


3

我会先选择Arduino。很多书籍,教程和示例代码。还有一个很棒的社区。然后,如果您熟悉Arduino,请尝试AVR-GCC的C语言。

这些天我不推荐ASM。也许有些地方可能需要使用ASM,但是大多数事情都可以用普通C来解决。通过ASM,您可以了解有关微控制器工作方式的一些非常详细的信息,但是如果您想使事情更快地发生,我会坚持C或C ++。


问题是很难获得我住的地方的arduino。我打算自己做一个,但是也没有用(阅读没有时间)。
Rick_2047 2010年

如果您有能力对芯片进行编程,则可以在其上加载Arduino固件,然后使用串行链接+ Bootloader进行后续工作。
gallamine 2011年

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.