SLEEP_POWER_DOWN Y RESET POR SOFWARE

Hola a todos;

Estoy haciendo un programita que hace lo siguiente.
tengo un interruptor a la interrupcion1 y al pin4
Cuando el interruptor se pone a 0 entra en modo sleep , pero no me escribe "me voy a dormir" y se duerme.
cuando el interruptor se pone a 1 se resetea por software y empieza a funcionar perfectamente.
Que puede pasar , que no me escribe cuando se va a dormir?
Tambien me gustaria eliminar el pin4 pero no se como
os dejo el programa

//sleep_power_down con un interruptor e interrupcion INT1
//cuando el interruptor se pone a 0 sleep power down
//cuando el interruptor se pone a 1 despierta y reseteate

#include <avr/sleep.h>
#include <avr/power.h>

void setup() {
  // put your setup code here, to run once:

  pinMode(3,INPUT);
  pinMode(4,INPUT);
  pinMode(13,OUTPUT);
  Serial.begin(9600);

  //configurar INT1
  
  cli();                 // Aca se desactivan las interrupciones, no antes.

  EICRA |=  1 << ISC00 ; //Int1 en rising
  EIMSK |=  1 << INT1;   // elijo la interrupcion externa  pin3

  sei();
  
  Serial.println("Configuracion completada");
}

void loop() {
  // put your main code here, to run repeatedly:
 
  Serial.println("Despierto.");
  digitalWrite(13,HIGH);
  delay(100);
  digitalWrite(13,LOW);
  
  if(!digitalRead(4)){
  
  Serial.println("ME voy a dormir");
  delay(50);
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
  sleep_enable();
  sleep_cpu ();   // one cycle
    
  }
}

ISR(INT1_vect){
  
    asm ("jmp 0");  //reset por software
  }

Os agradeceria que me pudieseis ayudar.
un saludo

Pues a mi si que me sale...

Despierto.
Despierto.
Despierto.
Despierto.
Despierto.
Despierto.
Despierto.
Despierto.
ME voy a dormir

joder carmelococo, y como a ti te sale y a ni no?
es muy raro.
me sale todo menos lo ultimo.
podria ser del ordenador?

Es posible que se eche la siesta antes de que se haya hecho toda la lectura del buffer...