Skytraq S1315F-RAW-EVK Logger

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers libT_getAcc.c Source File

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