blob: 2121f02d912d58e7e38d4dec2a7028071b11b526 [file] [log] [blame]
Christina Quast8be71e42014-12-02 13:06:01 +01001/* ----------------------------------------------------------------------------
2 * ATMEL Microcontroller Software Support
3 * ----------------------------------------------------------------------------
4 * Copyright (c) 2008, Atmel Corporation
5 *
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * - Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the disclaimer below.
13 *
14 * Atmel's name may not be used to endorse or promote products derived from
15 * this software without specific prior written permission.
16 *
17 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * ----------------------------------------------------------------------------
28 */
29
30/*------------------------------------------------------------------------------
31 * Headers
32 *------------------------------------------------------------------------------*/
33
34#include "board.h"
35
36/*------------------------------------------------------------------------------
37 * Exported functions
38 *------------------------------------------------------------------------------*/
39
40/**
41 * Returns the minimum value between two integers.
42 *
43 * \param a First integer to compare.
44 * \param b Second integer to compare.
45 */
46extern uint32_t min( uint32_t dwA, uint32_t dwB )
47{
48 if ( dwA < dwB )
49 {
50 return dwA ;
51 }
52 else
53 {
54 return dwB ;
55 }
56}
57
58/*------------------------------------------------------------------------------
59 * Returns the absolute value of an integer.
60 *
61 * \param value Integer value.
62 *
63 * \note Do not call this function "abs", problem with gcc !
64 */
65extern uint32_t absv( int32_t lValue )
66{
67 if ( lValue < 0 )
68 {
69 return -lValue ;
70 }
71 else
72 {
73 return lValue ;
74 }
75}
76
77/*------------------------------------------------------------------------------
78 * Computes and returns x power of y.
79 *
80 * \param x Value.
81 * \param y Power.
82 */
83extern uint32_t power( uint32_t dwX, uint32_t dwY )
84{
85 uint32_t dwResult = 1 ;
86
87 while ( dwY > 0 )
88 {
89 dwResult *= dwX ;
90 dwY-- ;
91 }
92
93 return dwResult ;
94}
95