diff options
Diffstat (limited to 'stm8/main.c')
-rw-r--r-- | stm8/main.c | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/stm8/main.c b/stm8/main.c index ec9325d..cf8af5c 100644 --- a/stm8/main.c +++ b/stm8/main.c @@ -552,6 +552,26 @@ void ensure_afr0_set(void) } } +void tick_init(void) +{ + TIM4_PSCR = 0x04; + TIM4_IER |= TIM_IER_UIE; + TIM4_CR1 |= 1; +} + +void tim4_isr(void) __interrupt(TIM4_IRQ) +{ + TIM4_SR &= ~1; + TIM4_CR1 &= ~1; + rim(); + display_refresh(); + read_state(); + if (read_newline) { + process_input(); + } + TIM4_CR1 |= 1; +} + int main() { unsigned long i = 0; @@ -561,6 +581,7 @@ int main() uart_init(); pwm_init(); adc_init(); + tick_init(); config_load(); @@ -575,12 +596,8 @@ int main() adc_start(4); commit_output(); - do { + while (1) { iwatchdog_tick(); - read_state(); - display_refresh(); - if (read_newline) { - process_input(); - } - } while(1); + wfi(); + } } |