guiguitant théo / greenhouse1

Dependencies:   mbed

Committer:
guiguitt
Date:
Mon May 27 20:37:26 2019 +0000
Revision:
4:336b944e9430
Parent:
0:3fc4a1072bca
correction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
guiguitt 0:3fc4a1072bca 1 /*
guiguitt 0:3fc4a1072bca 2 / _____) _ | |
guiguitt 0:3fc4a1072bca 3 ( (____ _____ ____ _| |_ _____ ____| |__
guiguitt 0:3fc4a1072bca 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
guiguitt 0:3fc4a1072bca 5 _____) ) ____| | | || |_| ____( (___| | | |
guiguitt 0:3fc4a1072bca 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
guiguitt 0:3fc4a1072bca 7 (C)2013 Semtech
guiguitt 0:3fc4a1072bca 8
guiguitt 0:3fc4a1072bca 9 Description: Helper functions implementation
guiguitt 0:3fc4a1072bca 10
guiguitt 0:3fc4a1072bca 11 License: Revised BSD License, see LICENSE.TXT file include in the project
guiguitt 0:3fc4a1072bca 12
guiguitt 0:3fc4a1072bca 13 Maintainer: Miguel Luis and Gregory Cristian
guiguitt 0:3fc4a1072bca 14 */
guiguitt 0:3fc4a1072bca 15 #include <stdlib.h>
guiguitt 0:3fc4a1072bca 16 #include <stdio.h>
guiguitt 0:3fc4a1072bca 17 #include "board.h"
guiguitt 0:3fc4a1072bca 18 #include "utilities.h"
guiguitt 0:3fc4a1072bca 19
guiguitt 0:3fc4a1072bca 20 /*!
guiguitt 0:3fc4a1072bca 21 * Redefinition of rand() and srand() standard C functions.
guiguitt 0:3fc4a1072bca 22 * These functions are redefined in order to get the same behavior across
guiguitt 0:3fc4a1072bca 23 * different compiler toolchains implementations.
guiguitt 0:3fc4a1072bca 24 */
guiguitt 0:3fc4a1072bca 25 // Standard random functions redefinition start
guiguitt 0:3fc4a1072bca 26 #define RAND_LOCAL_MAX 2147483647L
guiguitt 0:3fc4a1072bca 27
guiguitt 0:3fc4a1072bca 28 static uint32_t next = 1;
guiguitt 0:3fc4a1072bca 29
guiguitt 0:3fc4a1072bca 30 int32_t rand1( void )
guiguitt 0:3fc4a1072bca 31 {
guiguitt 0:3fc4a1072bca 32 return ( ( next = next * 1103515245L + 12345L ) % RAND_LOCAL_MAX );
guiguitt 0:3fc4a1072bca 33 }
guiguitt 0:3fc4a1072bca 34
guiguitt 0:3fc4a1072bca 35 void srand1( uint32_t seed )
guiguitt 0:3fc4a1072bca 36 {
guiguitt 0:3fc4a1072bca 37 next = seed;
guiguitt 0:3fc4a1072bca 38 }
guiguitt 0:3fc4a1072bca 39 // Standard random functions redefinition end
guiguitt 0:3fc4a1072bca 40
guiguitt 0:3fc4a1072bca 41 int32_t randr( int32_t min, int32_t max )
guiguitt 0:3fc4a1072bca 42 {
guiguitt 0:3fc4a1072bca 43 return ( int32_t )rand1( ) % ( max - min + 1 ) + min;
guiguitt 0:3fc4a1072bca 44 }
guiguitt 0:3fc4a1072bca 45
guiguitt 0:3fc4a1072bca 46 void memcpy1( uint8_t *dst, const uint8_t *src, uint16_t size )
guiguitt 0:3fc4a1072bca 47 {
guiguitt 0:3fc4a1072bca 48 while( size-- )
guiguitt 0:3fc4a1072bca 49 {
guiguitt 0:3fc4a1072bca 50 *dst++ = *src++;
guiguitt 0:3fc4a1072bca 51 }
guiguitt 0:3fc4a1072bca 52 }
guiguitt 0:3fc4a1072bca 53
guiguitt 0:3fc4a1072bca 54 void memcpyr( uint8_t *dst, const uint8_t *src, uint16_t size )
guiguitt 0:3fc4a1072bca 55 {
guiguitt 0:3fc4a1072bca 56 dst = dst + ( size - 1 );
guiguitt 0:3fc4a1072bca 57 while( size-- )
guiguitt 0:3fc4a1072bca 58 {
guiguitt 0:3fc4a1072bca 59 *dst-- = *src++;
guiguitt 0:3fc4a1072bca 60 }
guiguitt 0:3fc4a1072bca 61 }
guiguitt 0:3fc4a1072bca 62
guiguitt 0:3fc4a1072bca 63 void memset1( uint8_t *dst, uint8_t value, uint16_t size )
guiguitt 0:3fc4a1072bca 64 {
guiguitt 0:3fc4a1072bca 65 while( size-- )
guiguitt 0:3fc4a1072bca 66 {
guiguitt 0:3fc4a1072bca 67 *dst++ = value;
guiguitt 0:3fc4a1072bca 68 }
guiguitt 0:3fc4a1072bca 69 }
guiguitt 0:3fc4a1072bca 70
guiguitt 0:3fc4a1072bca 71 int8_t Nibble2HexChar( uint8_t a )
guiguitt 0:3fc4a1072bca 72 {
guiguitt 0:3fc4a1072bca 73 if( a < 10 )
guiguitt 0:3fc4a1072bca 74 {
guiguitt 0:3fc4a1072bca 75 return '0' + a;
guiguitt 0:3fc4a1072bca 76 }
guiguitt 0:3fc4a1072bca 77 else if( a < 16 )
guiguitt 0:3fc4a1072bca 78 {
guiguitt 0:3fc4a1072bca 79 return 'A' + ( a - 10 );
guiguitt 0:3fc4a1072bca 80 }
guiguitt 0:3fc4a1072bca 81 else
guiguitt 0:3fc4a1072bca 82 {
guiguitt 0:3fc4a1072bca 83 return '?';
guiguitt 0:3fc4a1072bca 84 }
guiguitt 0:3fc4a1072bca 85 }