So I want to do something like this:
template<int PIN, int CHANNEL>
void initPin() {
attachInterrupt(PIN, rising<PIN, CHANNEL>, RISING);
}
template<int PIN, int CHANNEL>
void rising() {
startTimes[CHANNEL] = micros();
attachInterrupt(PIN, falling<PIN, CHANNEL>, FALLING);
}
template<int PIN, int CHANNEL>
void falling() {
values[CHANNEL] = micros() - startTimes[CHANNEL];
attachInterrupt(PIN, rising<PIN, CHANNEL>, RISING);
}
but the compiler gives me this error
no matches converting function ‘rising’ to type ‘void (*)()’
Can I even do this, or do I have to write all the functions by myself?