X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=bike-lights.git;a=blobdiff_plain;f=firmware%2Ftmr.c;h=23b70b68e316e372782a0d74be4883002fd564ea;hp=5a4403797f1db1fb29af62faaae90ce386ebe84f;hb=c30006aaf666f7cff3a6ab949c613c2f8cc6163b;hpb=f956c1fa7f47b0e8b8afe323c2eff1b6c2607c2a diff --git a/firmware/tmr.c b/firmware/tmr.c index 5a44037..23b70b6 100644 --- a/firmware/tmr.c +++ b/firmware/tmr.c @@ -4,30 +4,38 @@ #include "lights.h" volatile uint16_t jiffies; -#define PATTERN_DIV 5 // clk/10 +#define PATTERN_DIV 10 // 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 + OCR0A = 5; // 200 Hz TIMSK |= _BV(OCIE0A); jiffies = 0; pattern_div = PATTERN_DIV; } +void susp_tmr() +{ + TCCR0A = TCCR0B = 0; + TIMSK &= ~_BV(OCIE0A); + TIFR = 0; +} + ISR(TIMER0_COMPA_vect) { ++jiffies; + pwm_timer(); + if (--pattern_div == 0) { timer_check_buttons(); patterns_next_tick(); + timer_start_slow_adcs(); pattern_div = PATTERN_DIV; } - - timer_start_adcs(); }