Inhiber les interruptions fait planter le programme

Je viens de faire un test :

void setup()
{
  Serial.begin(115200);
  
  DDRK = 0;
  PORTK = 255;
  
    DDRB = DDRB | 0x80;  // led rouge
    PORTB = PORTB | 0x80;
    //DDRC = DDRC | 0x40;  //led jaune
    //PORTC = PORTC | 0x40;
    DDRC = DDRC | 0x80;  //led verte
    PORTC = PORTC | 0x80;
}

void loop()
{ Serial.println(PORTK&1);
  /*
    if (PORTK & 1)
    {
        PORTC &= 0x7F;
        delay(200);
    }
    else
    {
        PORTC |= 0x80;
        delay(200);
    }*/
}

Au départ je n'avais pas la connexion série. La led rouge était bien allumée, mais la verte toujours éteinte. J'ai tout bazardé en commentaire et mis le Serial. Résultat ma console est pleine à craquer de "1" . J'en ai donc conclu que le microcontroleur ne détectait jamais un niveau bas. Ce qui n'est pas normal, j'ai regardé le signal d'entré à l'oscilloscope pour vérifier, j'ai bien un niveau haut pendant 1.5ms et un niveau bas pendant 18.5ms. Je ne comprend plus rien, Quelqu'un saurait ce que j'ai fait de mal pour que ça fasse ça ?

Merci d'avance,