In a ADAU1701 application, I need to manage dynamically (from a DC offset block) the phase between two sawtooth signals. With most DSP, this is a trivial operation: add an offset to a 'master' sawtooth and perform a mask to do a wraparound when signal reaches 1.0. But since the ADAU1701 does not have bitwise logic... it's not trivial at all on this chip.
I have found a solution based on simple arithmetic (adding a constant, and perform a signal foldback when offseted sawtooth is over 1.0), but it's really time consuming (it takes more than 30 DSP cycles per phase control!). I really need to save CPU cycles on this application (if I can save 10 cycles per oscillator instance, I will be able to remove one DSP from the board!)
Does anybody have an idea to do this operation, in the most simple way?
Thanks a lot