summaryrefslogtreecommitdiff
path: root/stm8/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'stm8/main.c')
-rw-r--r--stm8/main.c31
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();
+ }
}