summaryrefslogtreecommitdiffstats
path: root/mig_test/software/libhal/common.c
diff options
context:
space:
mode:
authorBert Lange <b.lange@hzdr.de>2015-04-15 13:54:39 +0200
committerBert Lange <b.lange@hzdr.de>2015-04-15 13:54:39 +0200
commit8c5a743259480ebd0cfdbb17fbde8584e34b2aa4 (patch)
tree794887f475d6abb4bdde21c94105f7fcdde1bdd4 /mig_test/software/libhal/common.c
parenta1c964908b51599bf624bd2d253419c7e629f195 (diff)
downloadzpu-8c5a743259480ebd0cfdbb17fbde8584e34b2aa4.zip
zpu-8c5a743259480ebd0cfdbb17fbde8584e34b2aa4.tar.gz
clean up
Diffstat (limited to 'mig_test/software/libhal/common.c')
-rw-r--r--mig_test/software/libhal/common.c203
1 files changed, 0 insertions, 203 deletions
diff --git a/mig_test/software/libhal/common.c b/mig_test/software/libhal/common.c
deleted file mode 100644
index 941c7e4..0000000
--- a/mig_test/software/libhal/common.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWF_Internals/FPGA/hw_sp605/bsp_zpuahb/software/libhal/common.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#include <peripherie.h>
-#include <stdlib.h> // utoa, dtostrf (actually not implemented)
-
-////////////////////////////////////////
-// common stuff
-
-
-// libgloss/zpu/syscalls.c work with inbyte and outbyte
-char putchar( char c)
-{
- return stdout( c);
-}
-
-
-
-void putstr(const char *s)
-{
- while (*s)
- putchar( *s++);
-}
-
-
-/*
- print data in binary format
- prepend 0b
- parameter: dataType - number of bits
-*/
-void putbin( unsigned char dataType, unsigned long data)
-{
- unsigned char i, temp;
- char dataString[] = "0b ";
-
- for(i=dataType; i>0; i--)
- {
- temp = data % 2;
- dataString [i+1] = temp + 0x30;
- data = data/2;
- }
- putstr( dataString);
-}
-
-
-// http://asalt-vehicle.googlecode.com/svn› trunk› src› uart.c
-unsigned char puthex( unsigned char dataType, unsigned long data)
-{
- unsigned char count = 8; // number of chars
- unsigned char i;
- unsigned char temp;
- char dataString[] = " ";
-
- // dataType = bit width
- if (dataType == 4) count = 1;
- if (dataType == 8) count = 2;
- if (dataType == 16) count = 4;
-
- for(i=count; i>0; i--)
- {
- temp = data % 16;
- if (temp<10) dataString [i-1] = temp + 0x30;
- else dataString [i-1] = (temp - 10) + 0x41;
-
- data = data/16;
- }
- dataString[count] = '\0';
- putstr( dataString);
-
- return count; // return length
-}
-
-
-
-// http://www.mikrocontroller.net/articles/FAQ#itoa.28.29
-unsigned char itoa( long z, char* Buffer )
-{
- int i = 0;
- int j;
- char tmp;
- unsigned u; // In u bearbeiten wir den Absolutbetrag von z.
-
- // ist die Zahl negativ?
- // gleich mal ein - hinterlassen und die Zahl positiv machen
- if( z < 0 ) {
- Buffer[0] = '-';
- Buffer++;
- // -INT_MIN ist idR. größer als INT_MAX und nicht mehr
- // als int darstellbar! Man muss daher bei der Bildung
- // des Absolutbetrages aufpassen.
- u = ( (unsigned)-(z+1) ) + 1;
- }
- else {
- u = (unsigned)z;
- }
- // die einzelnen Stellen der Zahl berechnen
- do {
- Buffer[i++] = '0' + u % 10;
- u /= 10;
- } while( u > 0 );
-
- // den String in sich spiegeln
- for( j = 0; j < i / 2; ++j ) {
- tmp = Buffer[j];
- Buffer[j] = Buffer[i-j-1];
- Buffer[i-j-1] = tmp;
- }
- Buffer[i] = '\0';
- // Laengenkorrektur wg. Vorzeichen
- if (z < 0)
- i++;
- return i; // BLa: Laenge des Buffers zurueckgeben
-}
-
-unsigned char utoa( unsigned long i, char *p)
-{
- unsigned char length;
-
- length = 0;
- do {
- *--p = '0' + i % 10;
- i /= 10;
- length++;
- } while (i > 0);
- return length;
-}
-
-
-unsigned char putuint( unsigned long data)
-{
- char str[20];
- unsigned char length;
-
- length = utoa( data, str);
- putstr( str);
- return length;
-}
-
-
-unsigned char putint( long data)
-{
- char str[20];
- unsigned char length;
-
- length = itoa( data, str);
- putstr( str);
- return length;
-}
-/*
- putint( 1000); putchar('\n'); // ok
- putint( 10000); putchar('\n'); // ok
- putint( 100000); putchar('\n'); // ok
- putint( 1000000); putchar('\n'); // ok
- putint( 10000000); putchar('\n'); // ok
- putint( 100000000); putchar('\n'); // ok
- putint( 200000000); putchar('\n'); // ok
- putint( 400000000); putchar('\n'); // ok
- putint( 800000000); putchar('\n'); // ok
- putint( 1000000000); putchar('\n'); // ok
- putint( 2000000000); putchar('\n'); // ok
- putint( 4000000000); putchar('\n'); // -294967296 warning: this decimal constant is unsigned only in ISO C90
- putint( 8000000000); putchar('\n'); // -589934592 warning: integer constant is too large for "long" type
-*/
-
-unsigned char putfloat( float data)
-{
- char str[20];
- unsigned char length;
-
- length = dtostrf( data, 2, 1, str);
- putstr( str);
- return length;
-}
-
-
-// p means pseudo float
-// (an integer with 3 significant digits after the point)
-void putpfloat( unsigned long data)
-{
- putint( data/1000);
- putchar( '.');
- putint( data%1000 );
-}
-
-
-unsigned char putbool( int data)
-{
- if (data)
- {
- putstr( "yes");
- }
- else
- {
- putstr( "no");
- }
- return 0;
-}
-
OpenPOWER on IntegriCloud