leo72:
Se non rimetti il codice, uno fa riferimento all'ultimo che ha vistoPer la routine, devi agire proprio in questo modo. Un vettore, una routine.
Esempio: quicfunc1, quicfunc2 ecc...
#define NO_PORTB_PINCHANGES // to indicate that port b will not be used for pin change interrupts
//#define NO_PORTC_PINCHANGES // to indicate that port c will not be used for pin change interrupts
// #define NO_PORTD_PINCHANGES // to indicate that port d will not be used for pin change interrupts
#include <PinChangeInt.h>
// For the Analog Input pins used as digital input pins, and you can use 14, 15, 16, etc.
// or you can use A0, A1, A2, etc. (the Arduino code comes with #define's
// for the Analog Input pins and will properly recognize e.g., pinMode(A0, INPUT);
//#define PIN1 2
//#define PIN2 3
//#define PIN3 4
#define PIN1 14 //voglio usare un pin A0 e il 4D
#define PIN2 4
#define PIN3 16 //non lo uso
uint8_t latest_interrupted_pin;
[b]uint8_t latest_int_pin;[/b]
uint8_t interrupt_count[20]={0}; // 20 possible arduino pins
void quicfunc1() {
latest_interrupted_pin=PCintPort::arduinoPin;
interrupt_count[latest_interrupted_pin]++;
};
void quicfunc2() {
latest_int_pin=PCintPort::arduinoPin;
interrupt_count[latest_int_pin]++;
};
void setup() {
pinMode(PIN1, INPUT); digitalWrite(PIN1, HIGH);
PCintPort::attachInterrupt(PIN1, &quicfunc1, CHANGE);
pinMode(PIN2, INPUT); digitalWrite(PIN2, HIGH);
PCintPort::attachInterrupt(PIN2, &quicfunc2, CHANGE);
Serial.begin(115200);
Serial.println("-------------------------------");
}
uint8_t i;
void loop() {
uint8_t count;
Serial.print(".");
delay(1000);
for (i=0; i < 20; i++) {
if (interrupt_count[i] != 0) {
count=interrupt_count[i];
interrupt_count[i]=0;
Serial.print("Count for pin ");
if (i < 14) {
Serial.print("D");
Serial.print(i, DEC);
} else {
Serial.print("A");
Serial.print(i-14, DEC);
}
Serial.print(" is ");
Serial.println(count, DEC);
}
}
}
Devo creare un nuovo vettore[20] di pin o devo eliminare anche la variabile uint8_t latest_int_pin; che ho creato e usare quindi due funzioni identiche?