Dependencies: ChaNFSSD mbed BMP085 SHT2x
libT_getAcc.c
00001 /* 00002 * Copyright (c) 2011 Toshihisa T 00003 * Released under the MIT License: http://mbed.org/license/mit 00004 */ 00005 00006 extern "C" { 00007 static int libT_getAccTOmV(unsigned long Val,long *mV); 00008 int libT_getAcc1dot5G(unsigned long ADval,long *g); 00009 int libT_getAcc6G(unsigned long ADval,long *g); 00010 } 00011 00012 00013 static int libT_getAccTOmV(unsigned long Val,long *mV) 00014 { 00015 *mV = 0; 00016 00017 /* AnalogIn = 1mV = 19.85939393939394 */ 00018 if(Val >= 32767UL){ 00019 *mV = ((Val - 32767UL) * 100UL) / 1985UL; 00020 *mV = 0 - *mV; 00021 } else { 00022 *mV = ((32767UL - Val) * 100UL) / 1985UL; 00023 } 00024 return 0; 00025 } 00026 00027 int libT_getAcc1dot5G(unsigned long ADval,long *g) 00028 { 00029 long mV = 0; 00030 libT_getAccTOmV(ADval,&mV); /* A/D value to mV */ 00031 *g = (long)(mV / 8); /* 0.01g units */ 00032 return 0; 00033 } 00034 00035 int libT_getAcc6G(unsigned long ADval,long *g) 00036 { 00037 long mV = 0; 00038 libT_getAccTOmV(ADval,&mV); /* A/D value to mV */ 00039 *g = (long)(mV / 2); /* 0.01g units */ 00040 return 0; 00041 } 00042 00043 #if 0 00044 int main(void) 00045 { 00046 long g; 00047 00048 libT_getAcc1dot5G(22767UL,&g); 00049 if(g >= 0){ 00050 printf("1.5g g(DOWN)=%ld.%02ld\n",g/100,g%100); 00051 } else { 00052 g = g * -1; 00053 printf("1.5g g(UP)=%ld.%02ld\n",g/100,g%100); 00054 } 00055 libT_getAcc6G(22767UL,&g); 00056 if(g >= 0){ 00057 printf("6g g(DOWN)=%ld.%02ld\n",g/100,g%100); 00058 } else { 00059 g = g * -1; 00060 printf("6g g(UP)=%ld.%02ld\n",g/100,g%100); 00061 } 00062 return 0; 00063 } 00064 #endif
Generated on Thu Jul 14 2022 16:50:44 by 1.7.2