sahib said:
Andy, John,
Do you mind me asking why you feel that way about PIC?
I have been using them for 12 years now and without any problem. And I have a friend whom is a serious PIC developer and he has been designing serious applications with it.
I'm self taught, and have been coding on PICs for maybe 5-6 years. I am still forced to wrestle with the 8 bit proc used in my first generation tuner, until I use up that inventory, and move on to a newer part.
I did a more recent Peak/VU meter design using a newer PIC (16b) family and have kicked the tires, but not completed a finished design on their DSPic platform. The instruction set, registers, and architecture of the newer 16b PIC is pretty similar to their DSP, while lacking some of the DSP specific instructions. While I have a few complaints about the documentation and web support, I found the newer PIC platforms a pleasure to work on. Especially compared to the older PIC. I do not have experience with coding other processor families but can imagine the criticism about the PIC in the context of the early stuff as well founded. While some of this is just favoring the family you learned on.
While I only work at machine level, there are C compilers available for even the old PIC and the architecture looks like it supports the kind of tricks a C compiler would use. In fact I bought the C compiler for the old PIC when I started out since I had taken a night school course in C programming years earlier, not to mention writing tons of BASIC in the '70's, and even a little Fortran in the '60s. But when I started to familiarize myself with the C functions, I found the machine language descriptions of how they worked far easier to follow. I will probably use PIC again in the future since like Andy mentioned, I am well along on the PIC learning curve. Like I joke privately the scars on my ass form a Microchip logo.
FWIW I am in the middle of trying to code some pretty hairy tricks on the old processor platform and I am constantly reminded of the limitations. Having only one working register, requires swapping a list of variables into and out of that one register for crunching. Very (clock) time consuming, to the point I had to use the internal PLL feature to step my clock up 4x to get enough ticks inside my primary interrupt to take care of business. There are still features of that old PIC I never got working and if it wasn't for the debugging environment, I wouldn't have figured out as much as I have.
The last time I tried to use their website support was when I was first bringing up the Pk/VU meter design. After several days with no answer to my simple (after I figured out the answer) question, I informed the web contact of my solution I had figured out myself using trial and error. He then parroted my answer back to me, as if he had helped me. Arghhhh.
I really like (most) of the chip design, but I find the documentation annoying. This may be because I am self taught without a handy mentor to ask stupid questions. The descriptions of the instruction set seems almost an after though, written by experienced engineers that don't know what I don't know. I have to use the debugging environment sometimes to figure out obscure instructions.
This may be a personal problem, but I am now hooked on digital processing. I can do stuff that would be impossible using analog technology. I will do a full review of feature sets before locking in my next project but the PICs seem competitive.
My advice to someone starting out from scratch is that the different platforms all seem similar in power/features, so pick the more popular platform to make it easier to get local support. I bought stock in the Microchip company, so I believe in the parts, and should probably be more of a pimp for them.
JR