Toshihisa T
/
S1315FLogger
Skytraq S1315F-RAW-EVK Logger
Embed:
(wiki syntax)
Show/hide line numbers
libT_getAcc.c
00001 00002 00003 extern "C" { 00004 static int libT_getAccTOmV(unsigned long Val,long *mV); 00005 int libT_getAcc1dot5G(unsigned long ADval,long *g); 00006 int libT_getAcc6G(unsigned long ADval,long *g); 00007 } 00008 00009 00010 static int libT_getAccTOmV(unsigned long Val,long *mV) 00011 { 00012 *mV = 0; 00013 00014 /* AnalogIn = 1mV = 19.85939393939394 */ 00015 if(Val >= 32767UL){ 00016 *mV = ((Val - 32767UL) * 100UL) / 1985UL; 00017 *mV = 0 - *mV; 00018 } else { 00019 *mV = ((32767UL - Val) * 100UL) / 1985UL; 00020 } 00021 return 0; 00022 } 00023 00024 int libT_getAcc1dot5G(unsigned long ADval,long *g) 00025 { 00026 long mV = 0; 00027 libT_getAccTOmV(ADval,&mV); /* A/D value to mV */ 00028 *g = (long)(mV / 8); /* 0.01g units */ 00029 return 0; 00030 } 00031 00032 int libT_getAcc6G(unsigned long ADval,long *g) 00033 { 00034 long mV = 0; 00035 libT_getAccTOmV(ADval,&mV); /* A/D value to mV */ 00036 *g = (long)(mV / 2); /* 0.01g units */ 00037 return 0; 00038 } 00039 00040 #if 0 00041 int main(void) 00042 { 00043 long g; 00044 00045 libT_getAcc1dot5G(22767UL,&g); 00046 if(g >= 0){ 00047 printf("1.5g g(DOWN)=%ld.%02ld\n",g/100,g%100); 00048 } else { 00049 g = g * -1; 00050 printf("1.5g g(UP)=%ld.%02ld\n",g/100,g%100); 00051 } 00052 libT_getAcc6G(22767UL,&g); 00053 if(g >= 0){ 00054 printf("6g g(DOWN)=%ld.%02ld\n",g/100,g%100); 00055 } else { 00056 g = g * -1; 00057 printf("6g g(UP)=%ld.%02ld\n",g/100,g%100); 00058 } 00059 return 0; 00060 } 00061 #endif
Generated on Fri Jul 15 2022 18:09:03 by 1.7.2