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?