summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/attiny/ao_clock.c40
-rw-r--r--src/micropeak/ao_pins.h2
2 files changed, 36 insertions, 6 deletions
diff --git a/src/attiny/ao_clock.c b/src/attiny/ao_clock.c
index a381b47f..b40f59d4 100644
--- a/src/attiny/ao_clock.c
+++ b/src/attiny/ao_clock.c
@@ -39,12 +39,45 @@ ao_time(void)
return r;
}
+#if AVR_CLOCK == 8000000UL
+#define AO_CLKPS 0 /* divide by 1 */
+#define AO_CS 10 /* prescale by 512 */
+#endif
+#if AVR_CLOCK == 4000000UL
+#define AO_CLKPS 1 /* divide by 2 */
+#define AO_CS 9 /* prescale by 256 */
+#endif
+#if AVR_CLOCK == 2000000UL
+#define AO_CLKPS 2 /* divide by 4 */
+#define AO_CS 8 /* prescale by 128 */
+#endif
+#if AVR_CLOCK == 1000000UL
+#define AO_CLKPS 3 /* divide by 8 */
+#define AO_CS 7 /* prescale by 64 */
+#endif
+#if AVR_CLOCK == 500000UL
+#define AO_CLKPS 4 /* divide by 16 */
+#define AO_CS 6 /* prescale by 32 */
+#endif
+#if AVR_CLOCK == 250000UL
+#define AO_CLKPS 5 /* divide by 32 */
+#define AO_CS 5 /* prescale by 16 */
+#endif
+#if AVR_CLOCK == 125000UL
+#define AO_CLKPS 6 /* divide by 64 */
+#define AO_CS 4 /* prescale by 32 */
+#endif
+#if AVR_CLOCK == 62500UL
+#define AO_CLKPS 7 /* divide by 128 */
+#define AO_CS 4 /* prescale by 32 */
+#endif
+
void
ao_timer_init(void)
{
cli();
CLKPR = (1 << CLKPCE);
- CLKPR = 0;
+ CLKPR = (AO_CLKPS << CLKPS0);
sei();
/* Overall division ratio is 512 * 125,
@@ -55,10 +88,7 @@ ao_timer_init(void)
(0 << PWM1A) | /* Not PWM mode */
(0 << COM1A0) | /* Don't change output pins */
(0 << COM1A1) | /* ... */
- (1 << CS13) | /* Prescale by 512 */
- (0 << CS12) | /* ... */
- (1 << CS11) | /* ... */
- (0 << CS10)); /* ... */
+ (AO_CS << CS10)); /* Prescale */
GTCCR = ((0 << PWM1B) | /* Not PWM mode */
(0 << COM1B1) | /* Don't change output pins */
(0 << COM1B0) | /* ... */
diff --git a/src/micropeak/ao_pins.h b/src/micropeak/ao_pins.h
index 67de1a8e..cf5951df 100644
--- a/src/micropeak/ao_pins.h
+++ b/src/micropeak/ao_pins.h
@@ -32,7 +32,7 @@
#define HAS_MS5611 0
#define HAS_EEPROM 0
#define HAS_BEEP 0
-#define AVR_CLOCK 8000000UL
+#define AVR_CLOCK 250000UL
/* SPI */
#define SPI_PORT PORTB