Timer1 prescaler

I have a 328P chip that I am using as a breadboard Arduino without a crystal. So it is running the 8mhz internal oscillator and that is running just fine for me. I am trying to set the prescaler on timer1 to no prescaling which based on my reading can be done with this piece of code below. Based on reading the datasheet timer1 appears to use the crystal and I am not using one. My question is it possible to change this and have timer1 run off of the internal oscillator?

TCCR1B |= (1 << CS10); //no prescaler

Timer1 is clocked off the CPU clock, after being prescaled. So it doesn't matter what the clock source is.

Your mistake is assuming that TCCR1B is set to the default values shown in the datasheet. But this is not the case - before setup() runs, the timers are configured for a different prescaler (64 I think) and other bits are set to get it ready for making PWM with analogWrite. So while you are setting CS10 if it's not already set, the other CS bits may still be set to something, so the prescaler isn't set to what you intended.

Figure out what you want for the whole value of these timer registers (TCCR1B and probably TCCR1A), and set them to that value (using = instead of |= ).

1. TC1 prescaler circuit

2. TCCR1B Register that determines the division factor

3. Available division factors:
CS12 - CS10 = 000 : no clock source TC1 is OFF
CS12 - CS10 = 001 : divide by 1
CS12 - CS10 = 010 : divide by 8
CS12 - CS10 = 011 : divide by 64
CS12 - CS10 = 100 : divide by 256
CS12 - CS10 = 101 : divide by 1024

4. Example:
TCCR1B = 0x03; //TC1 is being driven by 8 MHz/64 = 125000 Hz clock