OV7670 with both arduino uno and now mega

The non-FIFO version works with the registers that Mr_Arduino provided, using 16MHz or 8MHz clock. You have to wait for PCLK raising edge and the read one byte from data lines. Then the second byte with the next PCLK raising edge. That portion of code should be really fast, and you have to disable interrupts in the µC for that to work (disable interrupts only when reading the image from the sensor). And you have to configure the cam to slow PCLK enough. If you have 16MHz clock you have to divide it for a bigger number than having an 8MHz clock. If you don't do that you will never be able to read the image with an 16MHz Arduino. Unless (I'm not sure) you configure interrupts for handling PCLK. But even if you do that, you could have a speed problem if PCLK is too fast.