> I noticed the PIC DTMF generator circuit (via link) suggested by Scott uses > a 16F84. = It probably dates from a time when the 16F84 was the best available chip for the job. Nowadays, there is basically nothing for which the '84 is t= he ideal chip: anything it could do, can be done cheaper with some more rece= nt PIC. > However, other respondents mentioned the 18xxx series. Am I > correct in assuming that the differing amplitudes of each SW necessitat= e > the hardware multiplier of the latter micro? = Doing the amplitude adjustment in software implies a multiplication or division operation. This can certainly be done in software, but that wou= ld be a lot slower than the 1-cycle 8x8 bit hardware multiply of the 18's. = With a 100 Hz max frequency, doing a software multiply is probably feasable; if you needed 10 KHz it proabably wouldn't be... > I am a bit concerned as have > heard these are more complicated to program. = Hmm... 18F's have less available sample code, and lots more configuration= options to set (although MPLAB comes with templates for each chip, so you= don't have to figure out the options from scratch). On the other hand, y= ou can largely ignore some of the main problem areas of lesser PICs, such as= RAM banking and ROM paging. The main strike against 18F's, as I see it, = is that after getting used to them you may not be able to stand the thought = of programming for lesser PICs - and there are still some attributes that ar= e only available in 12x or 16x parts (such as low cost, and packages smalle= r than 18 pins). > Is there a way to do this with > the 16F84? = The main problem with the '84 for your application is that it doesn't hav= e a PWM module. Any software PWM inherently has less resolution, and takes= more time away from the rest of your code. > An off-list reply suggested a special PIC designed for motor control which > has 3 PWM outputs. The differing amplitudes could then be trimmed > externally. Is this a much simpler approach for a beginner? This is certainly a workable approach to your problem - I believe the 18Fxx31 motor control PICs are the only ones with 3 hardware PWMs in a le= ss than 68 pin package. You'll probably find much less available sample cod= e for the motor control PWMs (which are quite different from the standard P= IC PWM), and you'll have to wade through quite a bit of motor control-relate= d features that are completely irrelevant to your problem (fault detection,= deadbands, etc.). Note that you could do external adjustment of individual amplitudes even = if using a single PWM for output: connect your trimmer potentiometers to analog inputs of the PIC, and use the ADC readings as the amplitude multipliers. Jason Harper -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu