]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/tmr.c
mudflap for dual rearlights
[bike-lights.git] / firmware / tmr.c
index 5a4403797f1db1fb29af62faaae90ce386ebe84f..77e11531784c2d9096537240b79100aa8128abcb 100644 (file)
@@ -1,33 +1,24 @@
 #include <avr/io.h>
 #include <avr/interrupt.h>
+#include <avr/wdt.h>
 
 #include "lights.h"
 
 volatile uint16_t jiffies;
-#define PATTERN_DIV 5  // clk/10
-static unsigned char pattern_div;
 
 void init_tmr()
 {
-       TCCR0A = _BV(WGM00);
-       TCCR0B = _BV(CS02) | _BV(CS00); // CLK/1024 = 1 kHz
-       OCR0A = 10; // 100 Hz
-       TIMSK |= _BV(OCIE0A);
-
-       jiffies = 0;
-       pattern_div = PATTERN_DIV;
+       wdt_enable(WDTO_60MS);
+       WDTCR |= _BV(WDIE); // interrupt mode, 64 ms
 }
 
-ISR(TIMER0_COMPA_vect)
+void susp_tmr()
 {
-       ++jiffies;
-
-       if (--pattern_div == 0) {
-               timer_check_buttons();
-               patterns_next_tick();
-               pattern_div = PATTERN_DIV;
-       }
+       wdt_disable();
+}
 
-       timer_start_adcs();
+ISR(WDT_vect) {
+       WDTCR |= _BV(WDIE); // avoid WDT reset next time
+       ++jiffies;
 }