Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

utils.cpp

Committer:
klauss
Date:
2014-11-24
Revision:
74:81c47fff88a5
Parent:
72:895ca792c647
Child:
78:1353744f01e1

File content as of revision 74:81c47fff88a5:

#include "utils.h"

int ls_comp( const void * a, const void * b ){ return( *( int * )a - *( int * )b ); }

void reverse( char str[], int length ){
    int start = 0;
    int end = length -1;
    while (start < end){
        swap(*(str+start), *(str+end));
        start++;
        end--;
    }
}
char* itoa(int num, char* str, int base){
    int i = 0;
    bool isNegative = false;

    if( num == 0 ){
        str[i++] = '0';
        str[i] = '\0';
        return str;
    }
    if( num < 0 && base == 10 ){
        isNegative = true;
        num = -num;
    }
    while( num != 0 ){
        int rem = num % base;
        str[i++] = (rem > 9)? (rem-10) + 'a' : rem + '0';
        num = num/base;
    }
    if( isNegative )
        str[i++] = '-';
    
    str[i] = '\0'; // Append string terminator

    reverse( str, i );
    return( str );
}

void reset_leds( void ){ led1 = led2 = 1; led3 = led4 = 0; }

int convert_ext_to_port( int ext ){
  if( ext < 1000 ) return ext;
  
  else{
      int aux = 0;
      aux = ( ext / 1000 ) * 1000;
      ext -= aux;
      aux += ext % 100;
      return( aux );
  }
}

void xstrcpy(uint8_t * dest, const uint8_t * src ){
  while (*src)  *dest++ = *src++;
  *dest = 0; 
}

void xmemcpy(uint8_t * dest, uint8_t * src, uint16_t size ){
  while (size--) *dest++ = *src++;
}

void xmemcpy32(uint32_t * dest, uint32_t * src, uint16_t size){
  size >>= 2;
  while (size--) *dest++ = *src++;
}