The code from https://github.com/vpcola/Nucleo

Committer:
sinrab
Date:
Wed Oct 08 11:00:24 2014 +0000
Revision:
0:5464d5e415e5
The code from https://github.com/vpcola/Nucleo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sinrab 0:5464d5e415e5 1 /*----------------------------------------------------------------------------
sinrab 0:5464d5e415e5 2 * RL-ARM - RTX
sinrab 0:5464d5e415e5 3 *----------------------------------------------------------------------------
sinrab 0:5464d5e415e5 4 * Name: RT_TIME.C
sinrab 0:5464d5e415e5 5 * Purpose: Delay and interval wait functions
sinrab 0:5464d5e415e5 6 * Rev.: V4.60
sinrab 0:5464d5e415e5 7 *----------------------------------------------------------------------------
sinrab 0:5464d5e415e5 8 *
sinrab 0:5464d5e415e5 9 * Copyright (c) 1999-2009 KEIL, 2009-2012 ARM Germany GmbH
sinrab 0:5464d5e415e5 10 * All rights reserved.
sinrab 0:5464d5e415e5 11 * Redistribution and use in source and binary forms, with or without
sinrab 0:5464d5e415e5 12 * modification, are permitted provided that the following conditions are met:
sinrab 0:5464d5e415e5 13 * - Redistributions of source code must retain the above copyright
sinrab 0:5464d5e415e5 14 * notice, this list of conditions and the following disclaimer.
sinrab 0:5464d5e415e5 15 * - Redistributions in binary form must reproduce the above copyright
sinrab 0:5464d5e415e5 16 * notice, this list of conditions and the following disclaimer in the
sinrab 0:5464d5e415e5 17 * documentation and/or other materials provided with the distribution.
sinrab 0:5464d5e415e5 18 * - Neither the name of ARM nor the names of its contributors may be used
sinrab 0:5464d5e415e5 19 * to endorse or promote products derived from this software without
sinrab 0:5464d5e415e5 20 * specific prior written permission.
sinrab 0:5464d5e415e5 21 *
sinrab 0:5464d5e415e5 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
sinrab 0:5464d5e415e5 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
sinrab 0:5464d5e415e5 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
sinrab 0:5464d5e415e5 25 * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
sinrab 0:5464d5e415e5 26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
sinrab 0:5464d5e415e5 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
sinrab 0:5464d5e415e5 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
sinrab 0:5464d5e415e5 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
sinrab 0:5464d5e415e5 30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
sinrab 0:5464d5e415e5 31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
sinrab 0:5464d5e415e5 32 * POSSIBILITY OF SUCH DAMAGE.
sinrab 0:5464d5e415e5 33 *---------------------------------------------------------------------------*/
sinrab 0:5464d5e415e5 34
sinrab 0:5464d5e415e5 35 #include "rt_TypeDef.h"
sinrab 0:5464d5e415e5 36 #include "RTX_Conf.h"
sinrab 0:5464d5e415e5 37 #include "rt_Task.h"
sinrab 0:5464d5e415e5 38 #include "rt_Time.h"
sinrab 0:5464d5e415e5 39
sinrab 0:5464d5e415e5 40 /*----------------------------------------------------------------------------
sinrab 0:5464d5e415e5 41 * Global Variables
sinrab 0:5464d5e415e5 42 *---------------------------------------------------------------------------*/
sinrab 0:5464d5e415e5 43
sinrab 0:5464d5e415e5 44 /* Free running system tick counter */
sinrab 0:5464d5e415e5 45 U32 os_time;
sinrab 0:5464d5e415e5 46
sinrab 0:5464d5e415e5 47
sinrab 0:5464d5e415e5 48 /*----------------------------------------------------------------------------
sinrab 0:5464d5e415e5 49 * Functions
sinrab 0:5464d5e415e5 50 *---------------------------------------------------------------------------*/
sinrab 0:5464d5e415e5 51
sinrab 0:5464d5e415e5 52
sinrab 0:5464d5e415e5 53 /*--------------------------- rt_time_get -----------------------------------*/
sinrab 0:5464d5e415e5 54
sinrab 0:5464d5e415e5 55 U32 rt_time_get (void) {
sinrab 0:5464d5e415e5 56 /* Get system time tick */
sinrab 0:5464d5e415e5 57 return (os_time);
sinrab 0:5464d5e415e5 58 }
sinrab 0:5464d5e415e5 59
sinrab 0:5464d5e415e5 60
sinrab 0:5464d5e415e5 61 /*--------------------------- rt_dly_wait -----------------------------------*/
sinrab 0:5464d5e415e5 62
sinrab 0:5464d5e415e5 63 void rt_dly_wait (U16 delay_time) {
sinrab 0:5464d5e415e5 64 /* Delay task by "delay_time" */
sinrab 0:5464d5e415e5 65 rt_block (delay_time, WAIT_DLY);
sinrab 0:5464d5e415e5 66 }
sinrab 0:5464d5e415e5 67
sinrab 0:5464d5e415e5 68
sinrab 0:5464d5e415e5 69 /*--------------------------- rt_itv_set ------------------------------------*/
sinrab 0:5464d5e415e5 70
sinrab 0:5464d5e415e5 71 void rt_itv_set (U16 interval_time) {
sinrab 0:5464d5e415e5 72 /* Set interval length and define start of first interval */
sinrab 0:5464d5e415e5 73 os_tsk.run->interval_time = interval_time;
sinrab 0:5464d5e415e5 74 os_tsk.run->delta_time = interval_time + (U16)os_time;
sinrab 0:5464d5e415e5 75 }
sinrab 0:5464d5e415e5 76
sinrab 0:5464d5e415e5 77
sinrab 0:5464d5e415e5 78 /*--------------------------- rt_itv_wait -----------------------------------*/
sinrab 0:5464d5e415e5 79
sinrab 0:5464d5e415e5 80 void rt_itv_wait (void) {
sinrab 0:5464d5e415e5 81 /* Wait for interval end and define start of next one */
sinrab 0:5464d5e415e5 82 U16 delta;
sinrab 0:5464d5e415e5 83
sinrab 0:5464d5e415e5 84 delta = os_tsk.run->delta_time - (U16)os_time;
sinrab 0:5464d5e415e5 85 os_tsk.run->delta_time += os_tsk.run->interval_time;
sinrab 0:5464d5e415e5 86 if ((delta & 0x8000) == 0) {
sinrab 0:5464d5e415e5 87 rt_block (delta, WAIT_ITV);
sinrab 0:5464d5e415e5 88 }
sinrab 0:5464d5e415e5 89 }
sinrab 0:5464d5e415e5 90
sinrab 0:5464d5e415e5 91 /*----------------------------------------------------------------------------
sinrab 0:5464d5e415e5 92 * end of file
sinrab 0:5464d5e415e5 93 *---------------------------------------------------------------------------*/
sinrab 0:5464d5e415e5 94
sinrab 0:5464d5e415e5 95