pwm with delay

You're close. Paul is right, lose the for loop. Don't worry, loop() will be called again real soon. More like this:

void loop()
{
  unsigned long currentMillis = millis();

//  for (int i = 0; i <=255; i++){                     //<-- delete this line
    if (currentMillis - previousMillis > interval) {
      previousMillis = currentMillis;
      analogWrite (led, i++);     // <-- increment i here
      Serial.println (i);
    }
//  }          // <-- delete this line
}

-br