Please help support the site by donating at the link below.https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8ZRU34U47BESW
Some info you may not be looking at: That above waveform with the 6 dips in it happens every 10 milliseconds (or a frequency of 100 Hz). So the waveform repeats like this:500 usec for R2500 usec for R1500 usec for triamngle500 usec for circle500 usec for X500 usec for square7 msec of nothing till the next repeatIf you try to hold the common high for anything longer than 500 microseconds during the first dip, you will mess up the other buttons as well. The trick is to use the very first dip for R2 as the start, and then manipulate the signal for each 500 microsecond period for each button. Once your done manipulating each button, have the PIC sit and wait for the next R2 start.Since this waveform repeats 100 times per second, you set the frequency of your rapidfire by simply using a counter for every waveform. For example, your rapidfire would count down once every waveform for 50 times, and then begin forcing the output high only during the R2 signal for another 50 waveforms by reseting that counter. Once you have force the waveform high for 50 counts, reset the counter again and stop forcing the R2 signal high. After another 50 coutns go by, begin forcing the R2 signal high again. This would give you a repeating signal on the R2 line at a rate of 10 times per second.