Is there any particular reason that the core files for the attiny85 would object to my using a 10mhz external resonator?
Let's start with the big item... There is not an entry in "boards.txt" for 10 MHz. You will need to clone the...
attiny85at16.name=ATtiny85 @ 16 MHz (external crystal; 4.3 V BOD)
...section and then change...
• The entry prefix "attiny85at16" to something appropriate like "attiny85at10". Be sure to change all the entries for the new section.
• The ".name" entry to something like "ATtiny85 @ 10 MHz (Bobnova)"
• The F_CPU option ".build.f_cpu=16000000L" to ".build.f_cpu=10000000L"
• Any other fuses (like BOD) for your application. The clock fuses are already correct.
The sketch in question doesn't use delay at all, and millis is only used for button debouncing,
That's good because millis / micros will not longer be accurate. The count will be a bit lower than it should be. Probably about 1%.
easy enough to change the numbers to make things work right.
I doubt millis will be that different that you'll notice for button debouncing.
I need (ok, want) two 20khz or so PWM outputs (independant of each other, so using the two PWM registers to count only to 200 wouldn't work as it disables the second PWM pin), setting the prescaler to full blast at 8mhz gives me 15khz or so, 10.5mhz would give me 20khz on the PWM in theory.
If you're willing to learn about a new type of timer, timer 1 may give you what you need without resorting to a 10 MHz clock speed. Timer 1 was built for high-speed PWM.
If you decide experiment with timer 1...
• Locate and open the "core_build_options.h" header file
• Change the INITIALIZE_SECONDARY_TIMERS #define to be "0" (without the quotes)
• In the ATtiny85 section, change the TIMER_TO_USE_FOR_MILLIS #define to be "0" (without the quotes)
• Timer 1 is now free to use as you please
It looks like it might be possible to user OCCAL (i think that's it, the calibration register) to wind the clock up that high, though at the sacrifice of EEPROM and flash writability in-sketch.
Why do you think the EEPROM would be effected by adjusting OSCCAL?