I require some code written in Microchip assembly for the Pic18F4520 processor running at a minimum of 10MHZ .
The code must provide a method to generate up to 190 different frequencies in the range 300hz to 3000hz and the complete set of DTMF signals that I will be outputting to an amp. The exact freq's are not important, I will modify as needed.
I believe the easiest method is to use lookup tables and the PWM mode but I am open to any other methods.
The code should be able to generate needed freq’s based on User input that will be stored in 2 or more registers. YOU WILL ONLY BE WRITING THE CODE FROM THE POINT OF TAKING THE VALUES IN THESE REGISTERS That will be used to select from a lookup table or other methods to set the PWM for generation of the correct tone or DTMF signal. I WILL BE WRITING THE USER INTERFACE.
The code must be a complete running application for testing.
For testing, I will manual enter values directly in the registers that normally would have values from user interface.
The length of the Frequency can be set to 250Ms using one of the timers.
Notes must be made in the code to explain operation and note any formulas to determine frequencies.
I will be adding and modifying the code for other operations and changing the frequencies and the length they are generated so notations in your code are very important.
*** CORRECTION ***
Processor will use internal osc at 8Mhz
*** NOTE ***
for testing Tone frequency resolution, 412.5Hz, 733.8Hz, 1000.0Hz , 1702.0Hz and 2605.0Hz should be included in the tone table . You can use random frequencies for the rest of the table.
*** Addition ***
To simplify things I am requesting that this project will also require
coding for operation of the USART circuit of the PIC.
Operation as follows: When the user wants to select a single tone or a DTMF it will be inputted thru the pic18F USART at 4800 Baud rate and stored in registers and then an acknowledgment of a hex "FE".will send out thru USART, then the tone will be generated.
So for example: If a hex 09h, and A3h are received on the USART input, these values are stored in a register , then acknowledgment of a hex "FE" sent then the stored values would be used to select one of the 190 tones or DTMF from a lookup table to generate the signal. This is how I do it now with the pic16f877 but I control an external tone generator.
I want to now want to generate the tones with the PIC directly.
ANY SUGGESTIONS ARE WELCOME.