In The Trenches
guage will have a significant impact
on the development of the software.
You certainly don’t want to design web
pages with COBOL or a database
manager in Postscript. Generally, the
language choice will be fairly obvious.
There are a number of specialized languages for specialized applications.
For generic software, a general-purpose language is appropriate.
To limit the scope of discussion,
let’s look at one-person software development that supports a hardware
product. For example, this could be a
uC that controls a microwave oven or
a PC-based data-acquisition system.
For PC-based software, you will
clearly want to use a high-level language. There are several specialized
languages available, and you should
learn which of those are appropriate
for your application. Most general
programming is done with a variation
of the C language; C+ and C++ are
the most common. These are good
general-purpose languages that are
suitable for many applications.
For uC applications, assembly language and C+ are typical. However, an
important stipulation is that you should
always be proficient in the assembly
language for that uC because there are
times when a high-level language creates too much overhead for efficient
code. For real-time applications, it is
not unusual to require the maximum
speed of the uC. This can only
be accomplished in assembly.
Additionally, if you don’t know assembly, you are at the mercy of limitations
of the high-level language.
(sometimes called “assembled”) is
converted into machine language by
an external program called a compiler (or assembler). This machine
language translation is then loaded
into the computer and executed. The
compiler is only used during translation, not during execution.
An interpreter permanently resides
in the computer and converts one line
of code into machine language and
executes that code immediately. Then
it takes the next line of code and converts that, and so forth. This line-by-line
conversion/execution method is slow,
but it has the advantage of being easy.
You don’t have to load a compiler, link
various files, set compilation attributes,
and so on. You just hit “RUN.” For
beginners, this powerful simplicity is
Atmel AVRbased Micro64/128
Embedded Controller Module
8-Channel Analog to Digital Convertor
Real Time Clock/Calender
29 Digital I/O
SPI & I2C Bus
Two Serial Ports
Serial Boot Loader
RS-232, 422 or 485
Selectable Baud
Rates up to 250 Kbps
Only 1.5 Cubic Inches
Supports Assembly,
BASIC and C Prog. Languages
Inexpensive CodeVision C Compiler
Starting at Only
$119 - Single Qty
Basic as a Language
Choice
Basic (Beginners All-purpose
Symbolic Instruction Code) is easy to
learn and has lots of useful instructions. However, it is not a good choice
for commercial software development.
Before I get a lot of angry letters, let’s
examine why this is the case.
First, Basic is an “interpreter,”
while most other languages are compiled. This difference is very important. A program that is compiled
SEPTEMBER 2005
Start Developing
The Micro6/128 Development
Board takes the Micro64/128 I/O
pins and expands them out to
solder pads and headers for ease
of connection when developing.
It also connects USART1 to RS-232
drivers or directly to screw
terminals for RS-422 or RS-485
communication. USART0 is also
connected to RS-232 drivers. The
RS-232 drivers are connected to
two DB9 connectors. This board
includes a prototyping area so the user can add external
circuitry. There is an onboard voltage regulator for powering the
Micro64/128 and additional circuitry. The Micro64/64A/128/128A
development system comes complete with a Micro64, Micro64A,
Micro128 or Micro128A, a Micro64/128 Development Board, and a
power supply.
VISIT WWW.MICROMINT.COM FOR MORE
INFORMATION or Call 1-800-635-3355
Circle #133 on the Reader Service Card. 77