Interruptions PCINT

Bonjour à tous.
J'ai lu le tuto sur les interruptions et pour me familiarisé, j'ai fait le programme suivant

// ARDUINO UNO

volatile int Commande_LED = 0;

void setup() 
{
  // port de sortie
  DDRB |=(1<<DDB5); // PB5 HIGH en sortie : broche 13
  PORTB &= ~(1<<PORTB5); // PB5 LOW : broche 13

  noInterrupts(); // Interruption non autorisées
  //Interruption broche 8
  DDRB &=~(1<<DDB0); // pin en Entrée = 0
  PORTB |=(1<<PORTB0); // pin HIGH : PULLUP Activée
  PCICR |=(1<<PCIE0); // Sélection du port 0 = B, C = 1, D = 2
  PCMSK0 |=(1<<PCINT0); // 
  interrupts(); // Interruption autorisées
}
//**************************************************************
ISR (PCINT0_vect) // Interruption sur changement d'état
{ 
  Commande_LED = 1;
} 
//******************************************************************
void loop() 
{
  if(Commande_LED == 1)
  {
    PORTB |= (1<<PORTB5); // pin 13 HIGH 
    delay(500);
    Commande_LED = 0;
    PORTB &= ~(1<<PORTB5); // pin 13 LOW
  }
}

L'interruption sur la broche 8 fonctionne correctement, j'ai voulu utiliser la broche 9 suivant le programme suivant mais sans succès

// ARDUINO UNO

volatile int Commande_LED = 0;

void setup() 
{
  // port de sortie
  DDRB |=(1<<DDB5); // PB5 HIGH en sortie : broche 13
  PORTB &= ~(1<<PORTB5); // PB5 LOW : broche 13

  noInterrupts(); // Interruption non autorisées
  //Interruption broche 9
  DDRB &=~(1<<DDB1); // pin en Entrée = 0
  PORTB |=(1<<PORTB1); // pin HIGH : PULLUP Activée
  PCICR |=(1<<PCIE0); // Sélection du port 0 = B, C = 1, D = 2
  PCMSK0 |=(1<<PCINT1); // 
  interrupts(); // Interruption autorisées
}
//**************************************************************
ISR (PCINT1_vect) // Interruption sur changement d'état
{ 
  Commande_LED = 1;
} 
//******************************************************************
void loop() 
{
  if(Commande_LED == 1)
  {
    PORTB |= (1<<PORTB5); // pin 13 HIGH 
    delay(500);
    Commande_LED = 0;
    PORTB &= ~(1<<PORTB5); // pin 13 LOW
  }
}

L'un d'entre vous peux-t-il me dire ou est mon erreur.
Cordialement.
Marc.

hello
dans ton 2ème prg, il faut aussi

ISR (PCINT**0**_vect) // Interruption sur changement d'état
{
Commande_LED = 1;
}

la doc atmel porte à confusion

il n'y a pas un vecteur d'interruption par bit mais par port.
le port B, c'est le vecteur 0

Bonsoir, merci.
Je pensais les utiliser comme les interruptions externes INT0 et INT1.
Cordialement.

PCINT0_vect étant le reflet d'une interruption demandée sur l'un des bits du port B,

si tu as autorisé une interruption sur un seul bit du port B pas de problème.
lorsque celle ci se présentera, PCINT0_vect sera exécuté

si tu as autorisé une interruption sur plusieurs bits du port B,
chacune d'entre elles exécutera PCINT0_vect.

c'est donc le meme vecteur qui sera executé pour tous les bits du port B
il t'appartiendra de mettre un filtre pour savoir quelle est l'entrée qui a déclenché l'interruption

Merci.
J'ai confondu les ports et les interruptions.
Cordialement.