Program Development
Essentially,
PIC micro controllers are computers. They do what they told, to the
letter. They have a certain amount of program memory, RAM for
storing temporary data, and EEPROM for long term data that is not
lost when power is removed.
The above features are just the
beginning, and every "type" of
PIC micro has different peripheral
features. Think of these as "built in" tools for development, such
as Hardware UART, I2C, Schmitt Trigger Inputs, through too USB and
Ethernet support. Understanding all the peripheral aspects is not
required to use a PIC for most tasks, and when program development
is coupled with a great compiler, you can focus and expand your
projects without "bit-banging" your way through the PIC's internals.
With that in mind, I use Swordfish.
Its a PICBasic language designed specifically for 18FPIC
development. Before you say "18F PIC's are too advanced for me",
think again. 18F PIC's are simply an advancement in microcontroller
technology. They are 16F's without the drawbacks, and have more
hardware peripheral features built in.
Swordfish
Swordfish is my compiler of choice, its simply superb and allows a
structured modular approach to PIC programming. You can
download the free version that only limits you to 200
Variables, and no program size/PIC range limitations. Here's an
extract from the Swordfish site;
The Structured Approach
Swordfish enables you to structure a program using subroutines
and functions. Each subroutine or function can have its own
local declarations consisting of constants, structures and
variables. Procedural programming is a better choice than simple
sequential or unstructured programming, especially in situations
which involve moderate complexity or require significant ease of
maintainability.
The Modular Approach
In large and complex programs, modularity is essential.
Swordfish enables you to group commonly used subroutines,
functions, constants, structures and variables into a single
entity called a module. Scoping is an essential part in keeping
a program modular and Swordfish allows all module declarations
to be defined as either private or public. The separation of
private and public parts of a module is often referred to as
encapsulation, or information hiding, and enables you to create
modules that are both reusable and robust.
Basics
Section: