Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Best language for learning AVRs (was forth)

2006-02-08 by Mike Perks

Thomas Keller wrote:

>    For a beginner with no programming experience at all, I would propose
> that you tackle assembly language first.  ASM is very easy to relate to,
> and more importantly, it also he;lps you to relate to the hardware,
> whatit does, and how it does it.  This understanding can be crucial to
> your success as a programmer, particular a p[rpogrammer 0of embedded
> processors.

This is probably going to start a whole new religious discussion but 
here we go. I have to completely disagree with Tom's assertion. ASM and 
the associated toolset has a VERY steep learning curve. Just to do 
something simple requires quite a bit of knowledge and lot of other 
ancilliary things from programmers to AVR debugging skills.

>    Realistically, higher level languages such as C, Forth, BASIC, etc.,
> only make sense for large, complex projects, in my estimation.  The fact
> that the languages were specifically designed to HIDE the underlying
> machine architecture and operations from you make them less than ideal
> when programming on a platofrm where understanding and relating to the
> hardware is eesential, such as embedded processors.
>
>    Understanding the insd and outs of communicaitng with, and
> controlling, the various internal peripheral modules is the real gisat
> of embedded programming.  The further away from that hardware the
> language holds you, the less clarity and efficiency of code you will
> likely generate.

I don't think a beginner is after efficiency and as for clarity, one 
line of a high level language is more clear than writing the 20 
assembler instructions yourself, particularly as most programmers don't 
bother with comments. The whole point of BASIC or C is to hide a lot of 
the painful details.

As a beginner it might be best to start with a platform where a lot of 
the work has already been done for you. My suggestion is to use 
something like the ZBasic (http://www.zbasic.net/ ) and the  Basic Stamp 
pin-compatible ZX-24 that uses an ATMega32. Then when you get more 
proficient (and interested) you could move to Bascom or C. The cost of 
the ZX-24 might seem high but remember it has a lot of built in hardware 
and firmware to make it easy to use.

Mike
http://home.austin.rr.com/perks/micros/

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.