Subversion Repositories dashGPS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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.