/** * @copyright 2016 Indie Semiconductor. * * This file is proprietary to Indie Semiconductor. * All rights reserved. Reproduction or distribution, in whole * or in part, is forbidden except by express written permission * of Indie Semiconductor. * * @file systick_device.c * @Author: Jack.Pan * @E-mail:jack.pan@indiemicro.com * @Date: 2020/09/10 */ #include #include "errno.h" #include #include "systick_sfrs.h" #include "systick_device.h" #include "clock_device.h" #include static sysTick_cb_func_t sysTickCallback = NULL; void SysTick_Handler(void) { if (sysTickCallback != NULL){ sysTickCallback(); } } void SysTick_Init(uint32_t ticks, sysTick_cb_func_t callback) { SysTick->VAL = 0U; SysTick->LOAD = ticks; sysTickCallback = callback; SysTick->CTRL |= (SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk); } uint32_t SysTick_GetCount(void) { uint32_t count = SysTick->VAL; return count; } uint32_t SysTick_GetLoad(void) { uint32_t count = SysTick->LOAD; return count; }