How to do exact time blinking for a Led

Well, 29.5, 30, 32 frames/second is not all that fast - 1/32 is the fastest, at 31,250 microseconds per frame.
Pretty sure you use micros( ) and control when your LED gets turned on & off to within a few microseconds.

void loop(){
currentTime = micros();
if ( (currentTime - previousTime)>= duration){
previousTime = previousTime + duration;
  toggle = 1 - toggle; // results in 1-0-1-0
  digitalWrite(ledPin, (toggle); // and use direct port manipulation to do this even faster.
  } 
}