PCINT with my arduino UNO says redefinition of 'void __vector_4()' So i'm working on a quadcopter controlled by the arduino UNO, and focusing in pin interrupts for the reciever. This is the code for the reciever.

unsigned long timer[4];
byte last_channel[4];
volatile int input[4];


void rx_initialize() {
  PCICR |= (1 &lt;&lt; PCIE0);
  PCMSK0 |= (1 &lt;&lt; PCINT0);
  PCMSK0 |= (1 &lt;&lt; PCINT1);
  PCMSK0 |= (1 &lt;&lt; PCINT2);
  PCMSK0 |= (1 &lt;&lt; PCINT3);
  Serial.begin(9600);
}

ISR(PCINT1_vect) {

  timer[0] = micros();//Lire la valeur PWM en microsecondes

  //////////////////////////CHANNEL1/////////////////////////////
  if(last_channel[0] == 0 &amp;&amp; PINB &amp; B00000001){//vaut digitalRead(HIGH); mais en plus rapide
    last_channel[0] = 1;//le state est HIGH
    timer[1] = timer[0];//Lire combien de temps HIGH
  }
  else if(last_channel[0] == 1 &amp;&amp; !(PINB &amp; B00000001)){
    last_channel[0] = 0;//le state est HIGH
    input[0] = timer[0] - timer[1];
  }

  //////////////////////////CHANNEL2/////////////////////////////
  if(last_channel[1] == 0 &amp;&amp; PINB &amp; B00000010){//Rising
    last_channel[1] = 1;//le state est HIGH
    timer[2] = timer[0];//Lire combien de temps HIGH
  }
  else if(last_channel[1] == 1 &amp;&amp; !(PINB &amp; B00000010)){//Falling
    last_channel[1] = 0;//le state est HIGH
    input[1] = timer[0] - timer[2];
  }

  //////////////////////////CHANNEL3/////////////////////////////
  if(last_channel[2] == 0 &amp;&amp; PINB &amp; B00000100){//Rising
    last_channel[2] = 1;//le state est HIGH
    timer[3] = timer[0];
  }
  else if(last_channel[2] == 1 &amp;&amp; !(PINB &amp; B00000100)){//Falling
    last_channel[2] = 0;//le state est HIGH
    input[2] = timer[0] - timer[3];
  }

  //////////////////////////CHANNEL4/////////////////////////////
  if(last_channel[3] == 0 &amp;&amp; PINB &amp; B00001000){//Rising
    last_channel[3] = 1;//le state est HIGH
    timer[4] = timer[0];
  }
  else if(last_channel[3] == 1 &amp;&amp; !(PINB &amp; B00001000)){//Falling
    last_channel[3] = 0;//le state est HIGH
    input[3] = timer[0] - timer[4];
  }
}


I'm using various files for every other part of the quadcopter such as PID controlling and IMU Reading.

But avrdude tells me that I did a redefinition of 'void __vector_4()'.
Itried to look into PinChangeInt.h in the Arduino library folder but still no solution to the problem.

Thank you for your help!
__vector_4() is just another name for PCINT1_vect(). The error
message simply means that you have defined that function twice. One
definition is explicit in the code you are showing to us. I cannot see
the other definition: obviously you are not showing all of your
code. Most likely that other definition lies inside some library you are
using in your program.

Since you cannot define an ISR twice, you will have to use another PCINT
which is not already in use. Or you could modify the library and try to
merge it's PCINT1_vect() with yours.

BTW, the error message does not come from avrdude, it comes from the
linker.