multi tasking ??? one processor does always one thing.....
quite easy problem:
all depends on your timing - use high speed oscillator (20Mhz)
create a timer under interupt ( interupt 1ms) relaod timer
create counters as much as you need.
increment the counters on interupt and compare with value
if match - relaod counters with new value ...
beware that interupttime is smaller than 1ms !
all other calculations can be done out of interupt.
rgds
tb
The only way you can have a PIC do more than one thing at a time is to have part of it done with hardware and the other in code. Sounds like you are going to need to use a timer so it might be doable.
Look at interrupts in general and DT's instant to be specific for ideas.
But do not be embarrassed to tell us about your project, unless...![]()
Dave
Always wear safety glasses while programming.
Malcolm
Your idea seems to fit the "Soft PWM" concept very well. Search here to find how to do it.
A little pseudo code might show you how
Code:' In a timer interrupt DutyCycle = DutyCycle+1 if DutyCycle < Value1 then Port1 = On else Port1 = Off endif if DutyCycle < Value2 then Port2 = On else Port2 = Off endif if DutyCycle < Value3 then Port3 = On else Port3 = Off endif if DutyCycle < Value4 then Port4 = On else Port4 = Off endif
Hi, Malc
The trick is to fire all 4 pulses at the same time ... and use the COMPARE function of a CCP to turn pulses off ...
of course, you must calculate at first which is turned off in 1st, 2nd ...etc.
and load the COMPARE value according to that.
http://mathieu.agopian.free.fr/prog_pic/servoter/
Alain
PS: another way is to use the CCS RTOS tool ... but ... not PbP anymore !
re P.S. ... You have too much things running at the same time, these days ... LOL
Last edited by Acetronics2; - 27th December 2009 at 11:36.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Thanks guys for all your suggestions.
Sorry to be secretive over this project guys, but I'm being mentored / tutored and most of the code so far (99%) has been supplied by that Friend and Mentor so I don't feel that it's appropriate for me to list it here. Hopefully once the festive holiday is over he will be able to assist me further. I'm hoping that once we've got the fundamentals tested and the project is completed we may be able to release the code to the forum community.
His code produces the variable that I have used in my output routine, which I've tested in the real world and now need to replicate 4 times.
I'll take the suggestions and search the forum for information on interrupts.
Many thanks
Bookmarks