While working on a disciplined clock, I decided to check the interrupt response times. I was amazed. With the following code, which does not do a lot of work in either the loop or the interrupt service routine, I was able to send interrupts at a 10Khz input rate and see the loop run fine. Much superior performance to what I expected. I enjoy this environment.
//works to 20khz interrupt rate and still services the loop
#include <avr/interrupt.h>
int state = LOW;
void setup()
{
pinMode(7,OUTPUT);
pinMode(13,OUTPUT);
attachInterrupt(0, intin, FALLING);
Serial.begin(9600);
}
void loop()
{
delay(200);
state=!state;
digitalWrite(13,state);
Serial.println("through the loop");
}
void intin()
{
state=!state;
digitalWrite(7,state); //pin 7 toggles at half input frequency
}