I wouldn't use debug.print for production code but it is ok to get something going. I'm away from my office at present so I don't have a device to test with. I compared your registers to the datasheet. There are two things missing:
1. You need to use CTC mode which WGM12 (bit 4) in TCCR1B.
2. You need to use a non-zero value in OCR1. For the prescaler you have chosen of 64, I would suggest a hex value of 1C2 to get 512 interrupts per second. The math is 14745600/(512*64) = 450 = 0x1C2.
mikep wrote:I wouldn't use debug.print for production code but it is ok to get something going.
I would vociferously recommend against using Debug.Print in an ISR under any conditions. The problem is that in an ISR interrupts are disabled. If the Com1 output queue is full, Debug.Print will wait for space to become available but, since interrupts are disabled, space will never become available.
A better strategy is to turn on an LED, or just toggle an I/O line and monitor it with a logic probe, logic analyzer, oscilloscope, etc. Any other indicator that you can think of that doesn't require interrupts to be serviced will also work.
dkinzer wrote:The problem is that in an ISR interrupts are disabled. If the Com1 output queue is full, Debug.Print will wait for space to become available but, since interrupts are disabled, space will never become available.
Good point.
I never usually have to debug my ISRs in any case as they work first time because they are so short