PWM at Low Frequencies (.12 Hz-10 Hz)

I have been trying to use the Arduino Uno to create square pulses at the following frequencies, 10Hz, 5Hz, 1Hz, .5Hz, and .12Hz using PWM.

As these frequencies are quite low, why not with using "blink without delay"

unsigned long duration = 100;  // in millis  -- 100, 200, 1000, 2000, 4000 == 10Hz, 5Hz, 1Hz, .5Hz, and .125Hz 
unsigned long lastFlip=0;
int state = LOW;

void setup()
{
  pinMode(7, OUTPUT);
  digitalWrite(7, state);
  Serial.begin(115200);
}

void loop()
{
  unsigned long now = millis();
  if (now - lastFlip >= duration)
  {
    lastFlip = now;
    state = !state;
    digitalWrite(7, state);
  }
}

Or try my PulsePattern library - http://arduino.cc/forum/index.php/topic,139407.0.html - which is timer driven