I know that this is extremely cheeky, but I desperately need assistance. I need someone to write, or help me write a program to produce what is outlined in this message's attachment. I have very little time to produce this circuit and have absolutely NO knowledge of PIC microcontrollers whatsoever! I have tried finding the relevent information on the internet but to no avail.
Anyone who can help me will be greatly appreciated.
this looks real simple. make a delay loop for .5s each half second set output 1 and output 2 to what you want. then make a continuious loop. So, set 1 high 2 high, wait .5s set 2 low, wait .5s set 2 high and 1 low wait .5s....etc. till you map poy 10s of you waveform..then loop back and do it over again
SocMatt if you've still got a need for this code been made, if you give me a few more details about the project (ie any code it has to work with, if so what interface etc) i might be able to nock somthing up!
Basically, all that is necessary is for the PIC to produce the two repeating waveforms continously. It is not necessary for any specific pins to be used of anything like that. The waveforms will simply be used to drive the input of an oxygen sensor and so needn't sink/source any current at all really.
There are no other microcontrollers, etc, in the circuit so that should make the program simple, but I am so busy that I don't have time to familiarise myself with the programming language.
Create a list in RAM of 20 registers containing this values. You will be using only the first two bits.
Use some PIC with Timer1 module (such as 16F87x), and use a Real Time Clock (see Microchip's application notes AN580 and AN582). This way you'll have an interrupt every one second, with a precission given by a 32KHz crystal (usually 20ppm).
In the interrupt vector (org 0x04) make a counter from 0 to 19. This counter will help you navigate the list. Using this pointer, make a computed goto to the corresponding entry in the list to recover the values. Move the values to the PORTB and voila.