>> 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