jeric3182:
I didn't want to use the millis() function, so I used an increment op to get my 0.5sec interval.
Why don't you want to use millis? You can't do serial prints inside an ISR, so you'll have to test some sort of flag in "loop" to know when to output your data. So why not just test the time from millis?
//This will run at a frequency of 120 Hz
ICR1 = 16600; // TOP @ 16600 to make it 120 Hz
OCR1A = 8300; // Initial OCR1A @ 50% Duty cycle
TCCR1A |= 1<<WGM11 | 0<<WGM10; // Fast PWM
TCCR1B |= 1<<WGM13 | 1<<WGM12; // ICR1 as TOP
TCCR1B |= 0<<CS12 | 1<<CS11 | 0<<CS10; //Pre-scaled by 8
TCCR1A |= 1<<COM1A1 | 0<<COM1A0; // Non-inverting mode
TIMSK1 |= 1<<TOIE1;
Wouldn't it be a lot easier just to do an analogWrite with a value of 127? That's a 50% duty cycle. Does the heater need to be driven at a frequency of 120 Hz?