1 /**************************************************************************//** 2 * @file os_tick.h 3 * @brief CMSIS OS Tick header file 4 * @version V1.0.1 5 * @date 24. November 2017 6 ******************************************************************************/ 7 /* 8 * Copyright (c) 2017-2017 ARM Limited. All rights reserved. 9 * 10 * SPDX-License-Identifier: Apache-2.0 11 * 12 * Licensed under the Apache License, Version 2.0 (the License); you may 13 * not use this file except in compliance with the License. 14 * You may obtain a copy of the License at 15 * 16 * www.apache.org/licenses/LICENSE-2.0 17 * 18 * Unless required by applicable law or agreed to in writing, software 19 * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 * See the License for the specific language governing permissions and 22 * limitations under the License. 23 */ 24 25 #ifndef OS_TICK_H 26 #define OS_TICK_H 27 28 #include <stdint.h> 29 30 /// IRQ Handler. 31 #ifndef IRQHANDLER_T 32 #define IRQHANDLER_T 33 typedef void (*IRQHandler_t) (void); 34 #endif 35 36 /// Setup OS Tick timer to generate periodic RTOS Kernel Ticks 37 /// \param[in] freq tick frequency in Hz 38 /// \param[in] handler tick IRQ handler 39 /// \return 0 on success, -1 on error. 40 int32_t OS_Tick_Setup (uint32_t freq, IRQHandler_t handler); 41 42 /// Enable OS Tick timer interrupt 43 void OS_Tick_Enable (void); 44 45 /// Disable OS Tick timer interrupt 46 void OS_Tick_Disable (void); 47 48 /// Acknowledge execution of OS Tick timer interrupt 49 void OS_Tick_AcknowledgeIRQ (void); 50 51 /// Get OS Tick timer IRQ number 52 /// \return OS Tick IRQ number 53 int32_t OS_Tick_GetIRQn (void); 54 55 /// Get OS Tick timer clock frequency 56 /// \return OS Tick timer clock frequency in Hz 57 uint32_t OS_Tick_GetClock (void); 58 59 /// Get OS Tick timer interval reload value 60 /// \return OS Tick timer interval reload value 61 uint32_t OS_Tick_GetInterval (void); 62 63 /// Get OS Tick timer counter value 64 /// \return OS Tick timer counter value 65 uint32_t OS_Tick_GetCount (void); 66 67 /// Get OS Tick timer overflow status 68 /// \return OS Tick overflow status (1 - overflow, 0 - no overflow). 69 uint32_t OS_Tick_GetOverflow (void); 70 71 #endif /* OS_TICK_H */ 72