I have issues with an interupt on a analog pin (A0).
I using a knocksensor (piezo disc) connected to A0.
My problem is that i don't know when the state is falling/rising or change. Because it is analog. In digital term i get it.
thanks.
#include <PinChangeInt.h>
// These two pins are connected for interrupts.
// Add more Pins at your leisure.
// For the Analog Input pins, 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.
#define PIN1 A0
uint8_t latest_interrupted_pin;
uint8_t interrupt_count[20]={0}; // 20 possible arduino pins
void quicfunc() {
latest_interrupted_pin=PCintPort::arduinoPin;
interrupt_count[latest_interrupted_pin]++;
Serial.print(" Ja... interrupt ");
};
void setup() {
pinMode(PIN1, INPUT); analogWrite(PIN1, LOW);
PCintPort::attachInterrupt(PIN1, &quicfunc, FALLING); // add more attachInterrupt code as required
Serial.begin(9600);
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);
}
}
}