I've been making good headway on my custom ATTiny44-based RGB/vibe/piezo feedback control chip, thanks to some help from guys here, Dean's tutorials on timers, and *gasp* actually reading through the datasheet, which turned out to be the most helpful of all. Amazing.
But I am running into a problem that I can't seem to figure out despite all of this. I cannot enable OCIE0A (TIM0_COMPA_vect) and still have the I2C communication work. If I leave that interrupt disabled, I2C works perfectly. If it's enabled, then everything else works, but I can't communicate with the chip.
First, my code is available here:
(jumps straight to perpetrating line)
I have commented out the interrupt enable for debugging purposes, but I'm using Timer0 for the foundational 100us tick that runs all the time to sync everything up.
The I2C/USI bus is being run as a slave, and from what I can tell (and based on the USI settings in the accompanying usiTwiSlave.c, also on GitHub there), using Timer0 should not create a conflict. I haven't found anything in the datasheet to this effect either. Obviously something is not playing nice though.