********
REMEMBER TO FIRST APPLY THE NEWEST PATCHED V7.1.1.0 files!!**********
--> Just to be sure we dont try to solve anything that has been allready solved...
I investigated this a bit with Arduino Mega2560 (older one). (With old bootloader, changed to newer v2 bootloader and then without bootloader.) All worked fine.
Connected a simple wire from RX0 to RX1 to trigger the RX1 interrupt.
Attached program proves that RX1 interrupt
works, try disabling or enabling this bit of code and load to arduino (i used Xloader to load .hex files to device) and see what happens:
I have to remind you to "flush" (by reading it) the UDR1 register in the macro for example to make program work more faster. If this is not done, the macro might not fire anymore or fires at very long interval (you can see this by looking at your TX led and sending a character to arduino).
This attached program dumps the Atmega internal registers to user and shows that there is data available on the receive buffer of UART1. If you put the UDR "reading" on in the UART1int macro, you see that the macro fires and the UDR printout shows some small value.
If value is 160, the UDR1 has not been flushed(=read to any variable):
To flush UDR1 register, you must use variable (remember to put FCV_ in front of and variable name in uppercase).
After flushing UDR1:
tested same on UDR0, if not emptied shows something like this:
BTW as a side product from this investigation: To kill your arduino serial communications easily, try setting the UDR0 to 0... Program jams pretty fine.