>> I am an experienced programmer in C and Basic on PCs and am looking
>> to
>> program [PICs]
>> I am new to micros and need to select a compiler that will carry me
>> not
>> just through the beginner stage but serve me into the future.
> Then you definitely don't want a compiler at this stage. You've got
> two
> major humps to get over, programming on small resource-limited
> systems, and
> the fact that you have to get intimate with the hardware. There is
> no OS
> and nicely abstracted I/O with a common procedural interface. You
> don't
> just slap a C program on one of these and go. You actually have to
> *know*
> something about the machine your program is going to run on.
While there is considerable merit in what Olin says I think it's a bit
purist for a competent and pragmatic person. Depending on how complex,
code efficient and speed efficient you want or need to be, and on how
closely you need to push the processor to its limits then the level of
abstraction provided by a compiler could well be tolerable and
beneficial for a competent 'beginner'. Bottom to mid range PICs tend
to have unusual (aka wierd) architectures where knowing what goes on
inside can be a signifcant advantage or even a necessity. But the top
end devices are almost "normal" enough that you may not need much of a
look at the inner workings in many cases.
It may be that there are better processors than PIC for
you which have hardware that better supports traditional HLL
constructs. The AVR ATMegas arguably fill this requrement.
I have a very competent programmer friend who has "progressed" from
programmer to team leader and is now IT manager for a largish comms
company. His whole programming lifetime has been spent in the C / C++
world or with similar languages. He decided that his dwindling hands
on coding days at work should be compensated for by learning to use
microprocessors and building robots. His young daughters
enthusiastically agree. He started with an ATMega168 and BASCOM
compiling BASIC. He then discovered WIN AVR C (free GPL C) and has
converted to that. He has happily learned the minimum necessary to
handle ports, data direction registers, pullup resistors, logic levels
and their ilk and, having finished his first wander-around-the-room
wheeled robot, is now starting on a 2 wheeled balancing robot. I would
be surprised if he is ever going to need assembler or to know the
arcane depths of an AVR processor - even though such things would
undoubtedly be useful to him. Depending on your applications, you may
be in his position.
AFAIK GPL C on the PIC is still walking wounded, while the AVR product
is available and reasonably complete. I suggest at least a look at AVR
and other products and a good look at what you want and need before
settling on PIC (or any other processor).
bzzzt.
Russell McMahon
A compiler is
> going to try and hide some of that from you, making the task of
> truly
> understanding it harder. And until you truly understand what goes
> on at the
> low level, you won't write good code and will constantly be banging
> your
> head against the wall when things don't work as expected, regardless
> of what
> language you write in.
>
> If learning the low level details doesn't appeal to you, find
> something else
> to do or get a Basic Stamp or something. These do provide the
> abstractions,
> but note that they cost an order of magnitude more than a bare PIC
> and run
> probably more than an order of magnitude slower.
>
>> I am looking specfically at MBasic, mEL Picbasic Pro, Hitech C, and
>> CCS
>> C.
>
> Start out with MPASM, which is part of the free MPLAB software from
> Microchip.
>
>
> ******************************************************************
> Embed Inc, Littleton Massachusetts, (978) 742-9014. #1 PIC
> consultant in 2004 program year. http://www.embedinc.com/products
> --
> http://www.piclist.com PIC/SX FAQ & list archive
> View/change your membership options at
> http://mailman.mit.edu/mailman/listinfo/piclist
>
>
--
http://www.piclist.com PIC/SX FAQ & list archive
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist