Confusion about none working Interrupt 2 on a ATMega644P/1284P

Steve, glad to hear you made some progress. I'll add a couple things. First, the 644PA is basically the same chip as the 1284P, just with less memory. They share the same datasheet. I think the 644PA lacks the second 16-bit timer (Timer/Counter3) but I think that's the only difference. So given that, code that works on one should work on the other. (The price difference between the two is less than a dollar, so unless I was building dozens or hundreds of copies of something, I'd just stick with the 1284P.)

Second, I hardly ever use attachInterrupt(), reason being it is quite straightforward to set the registers directly. This code is equivalent to what I posted above. It just uses INT2 to toggle an LED. Maybe give that approach a try.

const uint8_t ledPin = 7;

void setup(void)
{
    pinMode(ledPin, OUTPUT);
    EICRA = _BV(ISC21);          //external interrupt on falling edge
    EIFR = _BV(INTF2);           //clear the interrupt flag (setting ISCnn can cause an interrupt)
    EIMSK = _BV(INT2);           //enable external interrupt
}

void loop(void)
{
}

ISR(INT2_vect)
{
    static bool ledState;
    digitalWrite(ledPin, ledState = !ledState);
}