ATMega2560 timer not increasing again after overflow
The PIND ^= (1 &lt;&lt; PD0) line is off.

The PIN register holds the actual physical state pins, and would not normally be written.
The PORT register sets the state of the pin drivers.

However, as a common read-only register is a waste of I/O address space, Atmel added a neat feature to the pin register: Writing a bit mask to PIN will toggle the corresponding bits in PORT.
The line 'PIND ^= mask'  is then approximately the same as PORTD XOR PIND XOR mask.
Since PIND reads the pins PORTD drives, PIND is usually = PORTD, which results in this being equivalent to 'PORTD = mask'.

Try substituting 'PIND' with 'PORTD', -or- '^=' with just '='