Timer interrupt on ATtiny85, now delay() and mills() not working right

On my ATiny85, I presently have this setup to count 50us interrupts:

TCCR0A = (1 << WGM01);             //CTC mode
TCCR0B = (2 << CS00);              //div8
OCR0A = F_CPU/8 * 0.000050 - 1;    //50us compare value
TIMSK |= (1<<OCIE0A);              //if you want interrupt


However now whenever I call delay() or mills(), they are completely off. For instance, I need to use delay(20000) for a 1 second delay. Can anyone help me figure out what I’ve done wrong? Any help appreciated, thanks!

millis() uses timer 0.

Can anyone help me figure out what I've done wrong?

How many timers does the ATTiny85 have? Which one is used by millis()?

aarg: millis() uses timer 0.

And I imagine that's the same for delay then? Great, just great... Thanks!

And I imagine that's the same for delay then?

You don't need to imagine anything. You have the source code. Take a look at how delay() knows when to stop wasting time.

Yes, I had looked at the source code but am still new to this and am really having troubling figuring things out. I'll continue to look things over however and hopefully come up with something; switching timers has not yet solved the issue. Looks like I'll just have to spend more time with the source code...

If you use timer1, and don't touch the registers for timer0, it should work...

Note that timer1 is weird (see datasheet).