From 058c283919424ef8b4425cdf74739535dd1d8072 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Mon, 1 Jan 2018 17:40:28 -0500 Subject: heap; multitasking --- clock.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'clock.c') diff --git a/clock.c b/clock.c index 8041cb2..ab92386 100644 --- a/clock.c +++ b/clock.c @@ -45,15 +45,18 @@ void delay(uint32_t count) while (ticks < target); } -void PendSV_Handler(void) { -} - +__attribute__ ((naked)) void SysTick_Handler(void) { + uint32_t lr; + asm("mov %0, lr" : "=r" (lr)); + // just keep counting ticks++; - if (!(ticks % 500)) - SCB->ICSR |= SCB_ICSR_PENDSVSET_Msk; + if (!(ticks % 10)) + SCB->ICSR |= SCB_ICSR_PENDSVSET_Msk; + + asm("mov lr, %0; bx lr" :: "r" (lr)); } -- cgit v1.2.3