HarveyH42 said:
Yeah, I get the RISC deal, and a higher level language makes it no big deal to program. I'm familiar with assembly not C, so opcodes are important. Fewer instructions means more programming and more clock cycles (slower execution).
But RISC instruction are generally faster, if you are already used to assembly it won't take long at all - it's more a question of looking at things differently.
Anyway, the PIC set seems very light on branch and compare opcodes.
It's simply a matter of checking the STATUS register bits, it's very simple and quick to do.
Like I said, I'm just shopping around for the best place for me to get started. True, its no problem learning 36 opcodes, just how to make use of them. Just from what I read about the PIC I was strongly considering, I realized I'd need to use about 6 instructions, where I could have used a single 2 clock-cycle one.
As with anything, you can find advantages and disadvantages, generally PIC instruction cycles are faster than many processors - with most only taking one instruction cycle, and a few taking two - the instruction cycles are also only 1/4 of the clock oscillator, which is far faster than most, some run at 1/12 the clock speed.
Sure, I could learn to live with that, memory is cheap and the processor is plenty fast for most anything I would want to do, and maybe the other chips are no better in some regards.
Generally ANY micro-controller will do the job, and if you are already familiar with one?, I would suggest sticking to it - I see very little point in changing - unless it's for production purposes, and you can make substantial savings by moving to some other processor (either PIC or something else?).
A lot of the shock of the small number of instructions is caused by a lack of understanding what you DO get, a device optimised for it's purpose - for example you get one instruction bit manipulations (e.g. setting a pin HIGH or LOW, or checking if a pin is HIGH or LOW). Normally you have to read the entire byte, AND or OR it, and write it back - a process that requires a number of instructions, all of which take more than a single cycle.
So it's not a device for writing a disc operating system on, but for simple, fast, hardware manipulation it's hard to beat - and many of them already contain most of the peripheral devices you might be needing.
As you also say, speed is rarely an issue, probably 99% of PIC programs spend 99% of their time wasting time or waiting for something to happen.