#define MASK(n) ((1<<(n))-1)
#define SMASK(w,s) (MASK(w) << (s))
+#define LOWSPEED 50000
typedef union {
/*--------------------------------------------------------------------------*/
+static
+uint8_t is_lowspeed()
+{
+ return (TCCR1B & 7) < 2 &&
+ OCR1A > (F_CPU / 2 / LOWSPEED);
+}
+
static
void z80_setup_clock(void)
{
TCCR1A = (0b01 << COM1C0) | (0b00 << WGM10);
TCCR1B = (0b01 << WGM12) | ((prescale+1) << CS10);
- if (ocrval == 0) {
-// TCCR1C |= _BV(FOC1C);
+ if (ocrval == 0)
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
TCNT1 = 0xFFFF;
}
- }
PINB |= _BV(6); /* Debug */
else
count *= 8;
pre--;
-
}
return F_CPU/count;