Prop Rocks And the basis of the prop and the SX before it (sad to see it go) was that if you run fast enough, with deterministic timing, you can make everything in software that you could in hardware. And you can:=20 http://www.sxlist.com/techref/ubicom/virtperf.htm And in many cases, it's much less expensive and requires less power.=20 http://www.sxlist.com/techref/ubicom/power.htm=20 And can be much less complex. I'm working on MSP430's now which have hardware peripherals which are so complex to configure that I swear I could do a better job bit banging. In at least one case, the I2C interface had to be bit banged because the timing of the built in peripheral, although to standard, would not work with the chips we were talking at. The other advantage of bit banging is code reuse. I took the I2C code that = I had used on the SX and translated it to the MSP430. If that had been writte= n in C, it would have been even easier to do.=20 Having a handy library of C code for IO, especially synchronous stuff like LCD, I2C, SPI, and on top of that EEPROM, ADC, DAC, etc... protocols, and s= o on can be a very good investment. Even async like RS232 can be "mostly" managed in C with a bit of assembly or hardware diddling at the bottom to shift out the bits at a steady rate. Peripherals are overrated. Each one has a different errata, weird problems, lack of availability, and proprietary setup.=20 There is /some/ C code for io at: http://www.piclist.com/techref/microchip/language/c/ios.htm=20 I would love to have more. -- James Newton 1-970-462-7764=20 -----Original Message----- From: piclist-bounces@mit.edu [mailto:piclist-bounces@mit.edu] On Behalf Of RussellMc Sent: Tuesday, September 14, 2010 04:57 To: Microcontroller discussion list - Public. Subject: Re: [PIC] Bit-banging in C > If you are using a grown up MPU, then get the one with the peripherals > you need to avoid bit bashing if possible (unless you are trying to > shave 1/10ths of a penny off product cost). =A0If not then you probably > have enough CPU horsepower to handle most stuff within interrupts. Given the comments on multiple non standard and/or proprietary interfaces, perhaps a "Propellor" may be a good choice? http://www.parallax.com/propeller/ http://en.wikipedia.org/wiki/Parallax_Propeller (Ducks ... :-) ) R --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .