programmare arduino ethernet

Buongiorno, sto cercando di programmare arduino ethernet attraverso icsp con un adattatore della sparkfun FTDI/usb. Ho provato a caricare lo sketch blink che mi fa il lampeggio del led ma niente da fare il led rimane sempre acceso. Come pin ho usato il 9. Poi ho deciso di utilizzare il monitor seriale e quando ho modificato il codice con la scritta serial.begin(9600) il tutto ha cominciato a funzionare ora non capisco perché il primo pezzo di codice non funziona e rimane il led fisso accesso mentre il secondo pezzo di codice funziona. Eccoli di seguito

primo pezzo non funzionante:

void setup() {                
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:

  pinMode(9, OUTPUT);     
}

void loop() {
  digitalWrite(9, HIGH);   // set the LED on

  delay(1000);           // wait for a second

  digitalWrite(9, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

secondo pezzo funzionante:

void setup() {                
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  Serial.begin(9600);
  pinMode(9, OUTPUT);     
}

void loop() {
  digitalWrite(9, HIGH);   // set the LED on

  delay(1000);           // wait for a second

  digitalWrite(9, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

Nelle impostazioni ho selezionato come programmer "AVRISP mkll"

sei su linux?
in alcuni casi le delay non funzionano se prima non inizializzi Serial!

Interessante. Questa non la sapevo. :~

Si sono su linux. Hai ragioni i delay non funzionano senza inizializzare serial.
Grazie....però non capisco perché!

è un bug del compilatore, non conosco i particolari ma "a naso" direi che non inizializza dei registri che però inizializza la Serial...