100K Hz Pulse train with arduino.

Hello everyone,

To drive an IC chip, I need a three phase clock signal- three nonoverlapping pulse trains.

I was under this impression that I will be easily able to create these three nonoverlapping pulse trains with a simple C++ program and delay instructions, running on a arduino Mega 2560 (ATmega2560). But I was wrong. At slower frequencies such as 1K Hz, my program could create the nonoverlapping pulses. But when I increased the frequency, the pulses started to shift. It seems to me that when frequency is higher, the software-level instructions might have unpredictable timing (or can be interrupted by other instructions) and we can not get the required micro second precision. Am I correct?

The main question is that is this feasible to create such non-overlapping pulse trains at high frequencies such as 100k-1M Hz using Mega 2560? If yes, would you please advice me towards the right direction?

How about reading? I need to read the analog output during specific times. The required precision is again at micro second level. Can analog inputs and timing of arduino allows me to implement this?

Best regards