[Risolto]Porte obbligate?!

Tanto per cambiare Arduino mi sta facendo uscire pazzo!
Stavolta il problema è questo, per problemi hardware (realizzazione del PCB) ho cambiato alcuni pin e non funziona più niente, e procedendo a ritroso sono arrivato a questa "follia"!

 // reading liquid flow rate using Seeeduino and Water Flow Sensor from Seeedstudio.com
// Code adapted by Charles Gantt from PC Fan RPM code written by Crenn @thebestcasescenario.com
// http:/themakersworkbench.com http://thebestcasescenario.com http://seeedstudio.com
 
volatile int NbTopsFan; //measuring the rising edges of the signal
int Calc;                               
int hallsensor = 4;    //The pin location of the sensor
 
void rpm ()     //This is the function that the interupt calls 
{ 
  NbTopsFan++;  //This function measures the rising and falling edge of the hall effect sensors signal
} 
// The setup() method runs once, when the sketch starts
void setup() //
{ 
  pinMode(hallsensor, INPUT_PULLUP); //initializes digital pin 2 as an input
  Serial.begin(9600); //This is the setup function where the serial port is initialised,
  attachInterrupt(0, rpm, RISING); //and the interrupt is attached
} 
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop ()    
{
  NbTopsFan = 0;   //Set NbTops to 0 ready for calculations
  sei();      //Enables interrupts
  delay (1000);   //Wait 1 second
  cli();      //Disable interrupts
  Calc = (NbTopsFan * 60 / 7.5); //(Pulse frequency x 60) / 7.5Q, = flow rate in L/hour 
  Serial.print (Calc, DEC); //Prints the number calculated above
  Serial.print (" L/ORA\r\n"); //Prints "L/hour" and returns a  new line

Questo codice nasce con il sensore sul pin 2 e funziona, modificando il pin e, logicamente, ricaricando lo sketch non funziona più. Ma la stranezza è che con l'ingresso settato sul pin 4 (sketch) e sensore collegato sul pin 2 (Arduino) funziona tutto come in origine.
Per eliminare qualunque dubbio ho caricato sulla scheda altri sketch per essere certo di aver eliminato qualunque memoria, ma la situazione rimane invariata.
Stavolta dov'è che sbaglio?

SE stai cercado di cambiare il pin su cui c'è l'attachInterrupt() ... semplicemente NON puoi, o meglio, puoi solo scegliere tra pin 2 ed il pin 3 (che corrispondono ad Int0 ed Int1) e questo è fisso nell'HW della MCU (ATmega328P).

Ah ... la cosa è ben documentata nel reference che, per ogni tipo di board, specifica QUALI pin sono utilizzabili con la attachInterrupt().

Guglielmo

Capito! Quindi posso solo giocare tra i due pin ricordandomi di cambiare numero dell'interrupt.
Grazie mille

sí se usi quel tipo di interrupt.
senó tutti gli altri pin hanno un altro tipo di interrupt che é da gestire diversamente.
Ciao Uwe