[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] What method should I use to get started?

From: Matthew MacClary
Subject: Re: [avr-gcc-list] What method should I use to get started?
Date: Tue, 10 May 2005 12:42:26 -0700
User-agent: Mutt/

On Tue, May 10, 2005 at 08:13:00PM +0200, Tim wrote:
> But do you really read through all 300+ pages (at least thats the
> case with mega32) of the specification?

    Yes, this is how you do it.  Additionally, you need to be familiar
with the silicon errata for the specific revision of your chip(s), and
be in constant contact with the bug list for your tool chain.

> That seems exhaustive and boring.

    I personally find this to be a very effective way to learn about an
MCU: read the data sheet to see how the chip is supposed to work, then
write minimal code to use the feature that I need based of off Atmel's
example code in the datasheet. Finally extensively test the minimal
code to make sure I have understood the datasheet.
    If it appears that I am not understanding an MCU feature from the
datasheet then I will look at the chip and tool chain bug lists and
finally go to an Atmel app-note. Keep in mind that the quality and
applicability of app-notes to your project will vary widely.
    The alternative to reading the datasheet is constantly searching
the web to find code written by somebody who did read the datasheet!
Unfortunately, if you even find example code will most likely be
broken, use a different version of the tool chain, run on a different
processor or otherwise hurt as much as help you.

> Perhaps you could enlighten me on some simpler technique?

    To recap, the simplest way to program a MCU is to start with real
knowledge of the MCU taken straight from the datasheet. The datasheet
is your best friend! You can download a text-searchable PDF straight
from Atmel's web site and take it with you every where you go.


Where did the universe come from?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]