Intanto noto una cosa, interrupt_count devi dichiararlo di tipo volatile perché altrimenti il compilatore potrebbe ottimizzarla con risultati imprevedibili.
Questo vale per tutte le var globali usate nelle ISR. Quindi:
volatile uint8_t interrupt_count[20]={0};
latest_interrupt_pin dichiarala globale per ogni ISR, è meglio.
void quicfunc1() {
byte latest_interrupted_pin=PCintPort::arduinoPin;
interrupt_count[latest_interrupted_pin]++;
};void quicfunc2() {
byte latest_int_pin=PCintPort::arduinoPin;
interrupt_count[latest_int_pin]++;
};
Tanto ti serve solo come var temporanea.